Как узнать SID учетной записи пользователя Windows?

4

Когда вы смотрите на HKEY_USERSраздел реестра, каждый подраздел (представляющий настройки каждого пользователя) выглядит примерно так: S-1-5-18, который называется, SIDя думаю.

Как узнать, SIDдля какой учетной записи пользователя?

Петр Доброгост
источник

Ответы:

4

Как связать имя пользователя с идентификатором безопасности (SID)

Open Registry Editor and navigate to:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion \ProfileList

Under the ProfileList key, you will see the SIDs. By selecting each one individually, you can look at the value entry and see what user name is associated with that particular SID.
Nifle
источник
А вот краткая информация обо всех основных системных идентификаторах безопасности. Support.microsoft.com/kb/243330
Рис Гибсон,
1

Я использую следующий VB Script вместо установки дополнительных утилит. Я не могу взять кредит на отдельные его компоненты, только их сочетание:

Lookup_SID.vbs

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

UserName = UserInput( "Enter the user name:", "" )
Domain = UserInput( "Enter the domain / PC name:", "")

Set objAccount = objWMIService.Get _
("Win32_UserAccount.Name='" & UserName & "',Domain='" & Domain & "'")
Call UserInput( "The SID for " & Domain & "\" & UserName & " is: ", objAccount.SID )

Function UserInput( myPrompt, default_text )
' This function prompts the user for some input.
' When the script runs in CSCRIPT.EXE, StdIn is used,
' otherwise the VBScript InputBox( ) function is used.
' myPrompt is the the text used to prompt the user for input.
' The function returns the input typed either on StdIn or in InputBox( ).
' Written by Rob van der Woude
' http://www.robvanderwoude.com
    ' Check if the script runs in CSCRIPT.EXE
    If UCase( Right( WScript.FullName, 12 ) ) = "\CSCRIPT.EXE" Then
        ' If so, use StdIn and StdOut
        WScript.StdOut.Write myPrompt & " "
        UserInput = WScript.StdIn.ReadLine
    Else
        ' If not, use InputBox( )
        UserInput = InputBox( myPrompt,, default_text )
    End If
End Function
Терренс
источник
0

Посмотрите на ключи в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList

ShoNuff
источник
0

Powershell, который я нашел в других местах в Интернете (не имеет оригинального источника):

$objSID = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-21-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxx-xxxxxx") 
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount]) 
$objUser.Value

Кроме того, эта ссылка может иметь некоторое значение: подробности о SID

lightwing
источник
0

Откройте окно cmd и введите следующую команду

wmic useraccount where name='USERID' get sid

где USERID - это имя пользователя, чей SID вы ищете.

DannyBoi
источник