Jak znaleźć identyfikator SID użytkownika lub grupy reklam według nazwy i odwrotnie?

W środowisku Windows każdej domenie i lokalnemu użytkownikowi, grupie i innym obiektom bezpieczeństwa przypisany jest unikalny identyfikator - Bezpieczeństwo Identyfikator lub SID. To SID, a nie nazwa użytkownika, służy do kontroli dostępu do różnych zasobów: folderów sieciowych, kluczy rejestru, obiektów systemu plików, drukarek itp. W tym artykule pokażemy kilka prostych sposobów na znalezienie identyfikatora SID użytkownika lub grupy (lokalnej lub z Active Directory), a procedura odwrotna polega na określeniu nazwy użytkownika lub grupy systemu Windows na podstawie znanego identyfikatora SID.

Aby przekonwertować nazwę użytkownika na SID, możesz użyć różnic w narzędziu z pakietu Sysinternals - PsGetSid. Ale będzie musiał zostać pobrany i zainstalowany ręcznie na każdym komputerze. Przykład użycia PsGetSID dla SID użytkownika według nazwy konta:

psgetsid pc1 \ jjsmith

Pobieranie konta przez SID:

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

Moim zdaniem najprostszym sposobem konwersji SID -> Nazwa użytkownika i nazwa użytkownika -> SID jest najłatwiejszy w użyciu polecenia wiersza poleceń lub proste polecenia cmdlet programu PowerShell:

Treść

  • Jak uzyskać identyfikator SID lokalnego użytkownika?
  • Znajdź identyfikator SID użytkownika lub grupy w domenie AD według nazwy
  • Jak znaleźć nazwę konta użytkownika lub grupy według SID?
  • Wyszukaj obiekty w Active Directory według SID

Jak uzyskać identyfikator SID lokalnego użytkownika?

Aby uzyskać identyfikator SID konta lokalnego na tym komputerze, możesz użyć narzędzia wmic, który umożliwia dostęp do przestrzeni nazw WMI komputera. Aby uzyskać identyfikator SID lokalnego użytkownika test_user, możesz użyć narzędzia WMIC:

wmic useraccount gdzie name = "test_user" get sid

Zespół zwrócił nam identyfikator SID określonego użytkownika - S-1-5-21-1175651296-1316126944-203051354-1005.

Jeśli chcesz znaleźć identyfikator SID bieżącego użytkownika (pod którym wykonywane jest polecenie), użyj następującego polecenia:

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

Korzystanie z dwóch klas .NET System.Security.Principal.SecurityIdentifier i System.Security.Principal.NTAccount możesz uzyskać identyfikator SID użytkownika za pomocą programu PowerShell:

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

Znajdź identyfikator SID użytkownika lub grupy w domenie AD według nazwy

Możesz znaleźć SID bieżącego konta domeny za pomocą polecenia:

whoami / użytkownik

Możesz znaleźć SID użytkownika domeny za pomocą WMIC. W takim przypadku polecenie musi określić nazwę domeny:

wmic useraccount gdzie (name = 'jjsmith' and domain = "corp.winitpro.ru") get sid

Aby uzyskać identyfikator SID użytkownika domeny, można użyć polecenia cmdlet Get-ADUser, które jest częścią modułu Active Directory dla Windows PowerShell. Uzyskaj identyfikator SID konta jjsmith:

Get-ADUser -Identity 'jjsmith' | wybierz SID

Możesz uzyskać identyfikator SID grupy AD za pomocą innego polecenia cmdlet Get-ADGroup:

Get-ADGroup -Filter Jak nazwa "msk-admin *" | Wybierz SID

Jeśli moduł AD dla PowerShell nie jest zainstalowany na twoim komputerze, możesz uzyskać SID użytkownika za pomocą klas .Net wspomnianych wcześniej:

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

To samo polecenie PowerShell w jednym wierszu:

(new-object security.principal.ntaccount „jjsmith”). translate ([security.principal.securityidentifier])

Jak znaleźć nazwę konta użytkownika lub grupy według SID?

Aby znaleźć nazwę konta użytkownika według SID (procedura odwrotna), możesz użyć jednego z następujących poleceń:

wmic useraccount gdzie sid = "S-1-3-12-12452343106-3544442455-30354867-1434" pobierz nazwę

W programie PowerShell można uzyskać nazwę użytkownika według jego identyfikatora SID za pomocą modułu AD dla programu PowerShell:

Uzyskaj-ADUser -Identity S-1-5-21-247647651-3952524288-2944781117-23711116

Aby znaleźć nazwę grupy domen przy znanym identyfikatorze SID, użyj polecenia:

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

Możesz również dowiedzieć się o grupie SD i użytkowniku za pomocą wbudowanych klas PowerShell (bez dodatkowych modułów):

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

Wyszukaj obiekty w Active Directory według SID

Jeśli nie wiesz, do jakiego typu obiektu AD należy identyfikator SID i jakiego polecenia cmdlet należy użyć, aby go znaleźć (Get-AdUser, Get-ADComputer lub Get-ADGroup), możesz użyć uniwersalnej metody wyszukiwania obiektów w usłudze Active Directory według SID za pomocą polecenia Get cmdlet -ADObject.

$ sid = „S-1-5-21-2470146651-3951111111-2989411117-11119501”
Get-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$ sid'" | Wybierz nazwę obiektu, objectClass

SID

W naszym przypadku obiektem AD o danym identyfikatorze SID jest komputer (objectClass).