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