Ako zistiť SID používateľa alebo skupiny AD podľa mena a naopak?

V prostredí Windows je každej doméne a miestnemu užívateľovi, skupine a iným objektom zabezpečenia priradený jedinečný identifikátor - zabezpečenia identifikátor alebo SID. Je to SID a nie užívateľské meno, ktoré sa používa na riadenie prístupu k rôznym zdrojom: sieťovým zložkám, kľúčom registra, objektom systému súborov, tlačiarňam atď. V tomto článku si ukážeme niekoľko jednoduchých spôsobov, ako zistiť SID používateľa alebo skupiny (lokálne alebo z Active Directory) a opačným postupom je zistiť meno používateľa alebo skupiny Windows zo známeho SID..

Ak chcete previesť používateľské meno na SID, môžete použiť rozdiely v pomôcke zo sady Sysinternals - PsGetSid. Bude však potrebné stiahnuť a nainštalovať do každého počítača ručne. Príklad použitia PsGetSID pre SID používateľa podľa názvu účtu:

psgetsid pc1 \ jjsmith

Získanie účtu podľa SID:

psgetsid S-1-5-21-1175651296-1316133944-203321314-1005

Podľa môjho názoru je najjednoduchší spôsob, ako previesť SID -> Používateľské meno a Používateľské meno -> SID, najjednoduchší spôsob použitia príkazov príkazového riadka alebo jednoduchých rutín PowerShell:

obsah:

  • Ako získať lokálny identifikátor SID?
  • Vyhľadajte SID používateľa alebo skupiny v doméne AD podľa názvu
  • Ako zistiť názov používateľského účtu alebo skupiny podľa SID?
  • Vyhľadajte objekty v Active Directory podľa SID

Ako získať lokálny identifikátor SID?

Ak chcete získať SID miestneho účtu v tomto počítači, môžete použiť pomôcku WMIC, ktorý vám umožňuje prístup k počítačovému priestoru názvov WMI. Na získanie SID lokálneho používateľa test_user môžete použiť pomocný program WMIC:

wmic useraccount kde name = "test_user" get sid

Tím nám vrátil identifikátor SID zadaného používateľa - S-1-5-21-1175651296-1316126944-203051354-1005.

Ak potrebujete zistiť SID aktuálneho používateľa (pod ktorým sa príkaz vykonáva), použite nasledujúci príkaz:

wmic useraccount kde name = "% username%" get sid

Pomocou dvoch .NET tried System.Security.Principal.SecurityIdentifier a System.Security.Principal.NTAccount môžete získať SID užívateľa pomocou PowerShell:

$ objUser = New-Object System.Security.Principal.NTAccount ("LOCAL_USER_NAME")
$ strSID = $ objUser.Translate ([System.Security.Principal.SecurityIdentifier])
$ strSID.Value

Vyhľadajte SID používateľa alebo skupiny v doméne AD podľa názvu

SID aktuálneho doménového účtu nájdete príkazom:

whoami / užívateľ

SID používateľa domény môžete zistiť pomocou WMIC. V takom prípade musí príkaz špecifikovať názov domény:

wmic useraccount kde (name = 'jjsmith' a domain = "corp.winitpro.ru") dostanú sid

Na získanie identifikátora SID používateľa domény môžete použiť rutinu Get-ADUser, ktorá je súčasťou modulu Active Directory pre Windows PowerShell. Získajte identifikátor SID pre účet jjsmith:

Get-ADUser -Identity 'jjsmith' |. vyberte SID

SID AD skupiny môžete získať pomocou iného cmdletu Get-ADGroup:

Get-ADGroup -Filter Meno-ako "msk-admin *" | Vyberte SID

Ak vo vašom počítači nie je nainštalovaný AD modul pre PowerShell, môžete SID používateľa získať pomocou už uvedených tried .Net:

$ objUser = New-Object System.Security.Principal.NTAccount ("corp.wintpro.ru", "jjsmith")
$ strSID = $ objUser.Translate ([System.Security.Principal.SecurityIdentifier])
$ strSID.Value

Rovnaký príkaz PowerShell na jednom riadku:

(new-object security.principal.ntaccount „jjsmith“). preložiť ([security.principal.securityidentifier])

Ako zistiť názov používateľského účtu alebo skupiny podľa SID?

Ak chcete zistiť názov používateľského účtu pomocou SID (obrátený postup), môžete použiť jeden z nasledujúcich príkazov:

wmic užívateľský účet kde sid = "S-1-3-12-12452343106-3544442455-30354867-1434" získať meno

Na PowerShell môžete získať užívateľské meno podľa jeho SID pomocou AD modulu pre PowerShell:

Get-ADUser - Identita S-1-5-21-247647651-3952524288-2944781117-23711116

Ak chcete nájsť názov skupiny domén podľa známeho SID, použite príkaz:

Get-ADGroup -Identity S-1-5-21-247647651-3952524288-2944781117-23711116

Skupinu SD a používateľa môžete zistiť aj pomocou zabudovaných tried PowerShell (bez ďalších modulov):

$ objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2470456651-3958312488-29145117-23345716")
$ objUser = $ objSID.Translate ([System.Security.Principal.NTAccount])
$ objUser.Value

Vyhľadajte objekty v Active Directory podľa SID

Ak neviete, aký typ AD objektu patrí k určitému SID a do ktorého presného rutiny cmdlet sa dá nájsť (Get-AdUser, Get-ADComputer alebo Get-ADGroup), môžete použiť univerzálnu metódu na nájdenie objektov v Active Directory pomocou SID pomocou Get cmdlet. -ADObject.

$ sid = 'S-1-5-21-2470146651-3951111111-2989411117-11119501'
Get-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$ sid'" | Vyberte názov objektu, objectClass

SID

V našom prípade je objektom AD, ktorý má dané SID, počítač (objectClass).