Hogyan lehet megtudni egy felhasználó vagy az AD csoport SID nevét és fordítva?

Windows környezetben az egyes tartományok és helyi felhasználók, csoportok és egyéb biztonsági objektumok egyedi azonosítót kapnak - biztonság Azonosító vagy SID. A különféle erőforrásokhoz: a hálózati mappákhoz, a rendszerleíró kulcsokhoz, a fájlrendszer-objektumokhoz, a nyomtatókhoz stb. Az SID és nem a felhasználónév szolgál. Ebben a cikkben néhány egyszerű módszert mutatunk be egy felhasználó vagy csoport SID-jének kiderítésére (helyi vagy az Active Directory-ból), és a fordított eljárás egy Windows felhasználó vagy csoport nevének meghatározása egy ismert SID-ből..

A felhasználónév SID-re konvertálásához használhatja a különbségeket a Sysinternals csomag - PsGetSid segédprogramjában. Ezt azonban minden számítógépre manuálisan kell letölteni és telepíteni. Példa a PsGetSID használatához a felhasználói SID számára fióknév alapján:

psgetsid pc1 \ jjsmith

Fiók megszerzése SID szerint:

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

Véleményem szerint az SID -> Felhasználónév és Felhasználónév -> SID konvertálásának legegyszerűbb módja a parancssori parancsok vagy egyszerű PowerShell-parancsmagok használata:

Tartalom:

  • Hogyan szerezhető be a helyi felhasználó SID?
  • Keresse meg név szerint egy felhasználó vagy csoport SID-jét az AD tartományban
  • Hogyan lehet megtudni egy felhasználói fiók vagy csoport nevét az SID segítségével?
  • Objektumok keresése az Active Directory-ban az SID alapján

Hogyan szerezhető be a helyi felhasználó SID?

A segédprogram segítségével beszerezheti a helyi fiók SID-jét ezen a számítógépen wmic, amely lehetővé teszi a számítógép WMI névtér elérését. A WMIC segédprogram használatával megszerezheti a helyi tesztfelhasználó SID-jét:

wmic useraccount ahol name = "test_user" kap sid

A csapat visszaküldte nekünk a megadott felhasználó SID-jét - S-1-5-21-1175651296-1316126944-203051354-1005.

Ha ki kell derítenie az aktuális felhasználó SID-jét (amely alatt a parancs végrehajtásra kerül), akkor használja a következő parancsot:

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

Két .NET osztály használata System.Security.Principal.SecurityIdentifier és System.Security.Principal.NTAccount a felhasználó SID-jét a PowerShell használatával kaphatja meg:

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

Keresse meg név szerint egy felhasználó vagy csoport SID-jét az AD tartományban

Az aktuális domain fiók SID-jét a következő paranccsal találhatja meg:

Whoami / felhasználó

Megtalálhatja egy domain felhasználó SID-jét a WMIC használatával. Ebben az esetben a parancsnak meg kell adnia a domain nevet:

wmic useraccount ahol (name = 'jjsmith' és domain = "corp.winitpro.ru") kap sid

A tartományi felhasználó SID beszerzéséhez használhatja a Get-ADUser parancsmagot, amely a Windows PowerShell Active Directory moduljának része. Szerezze be a jjsmith-fiók SID-jét:

Get-ADUser -Identity 'jjsmith' válassza az SID lehetőséget

Az AD-csoport SID-jét egy másik parancsmag, a Get-ADGroup segítségével kaphatja meg:

Get-ADGroup -Filter Névszerű "msk-admin *" | Válassza az SID lehetőséget

Ha a PowerShell AD modulja nincs telepítve a számítógépére, a felhasználó SID-jét a korábban említett .Net osztályok használatával kaphatja meg:

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

Ugyanaz a PowerShell parancs egy soron:

(új objektum security.principal.ntaccount “jjsmith”) fordítás ([security.principal.securityidentifier])

Hogyan lehet megtudni egy felhasználói fiók vagy csoport nevét az SID segítségével?

A felhasználói fiók nevének SID szerinti megismeréséhez (fordított eljárás) az alábbi parancsok egyikét használhatja:

wmic felhasználási számla, ahol sid = "S-1-3-12-12452343106-3544442455-30354867-1434" kap nevet

A PowerShell-en a felhasználónevet SID-je alapján szerezheti be a PowerShell AD-modulja segítségével:

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

A tartománycsoport nevének az ismert SID alapján történő kereséséhez használja a következő parancsot:

Get-ADGroup-azonosság S-1-5-21-247647651-3952524288-2944781117-23711116

Az SD csoportot és a felhasználót a beépített PowerShell osztályok segítségével is megtudhatja (kiegészítő modulok nélkül):

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

Objektumok keresése az Active Directory-ban az SID alapján

Ha nem tudja, milyen típusú AD objektumhoz tartozik egy SID, és melyik pontos parancsmagot kell használni annak megtalálásához (Get-AdUser, Get-ADComputer vagy Get-ADGroup), használhatja az SID által az Active Directory objektumainak megtalálására szolgáló univerzális módszert a Get parancsmag segítségével. -ADObject.

$ sid = 'S-1-5-21-2470146651-3951111111-2989411117-11119501'
Get-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$ sid'" | Select-Object név, objectClass

SID

Esetünkben egy adott SID-vel rendelkező AD objektum egy számítógép (objectClass).