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).