Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When you look at HKEY_USERS registry key, each subkey (representing each user's settings) looks something like S-1-5-18 which is called SID I guess.

How do I know which SID is for which user account?

share|improve this question
up vote 3 down vote accepted

How to Associate a Username with a Security Identifier (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.
share|improve this answer
    
And here's a summary of all the main system SIDs support.microsoft.com/kb/243330 – Rhys Gibson Jan 11 '11 at 19:43

One can use PsGetSid also.

share|improve this answer

I use the following VB Script, rather than installing additional utilities. I can't take credit for the individual components of it, just the combination of them:

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
share|improve this answer

Look at the keys in the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.