Windows Security Identifier to username
Soms wil (moet…) je een Windows SID (Security Identifier) converteren naar een gebruikersnaam, of andersom. De volgende twee stukjes VBScript code doen dit voor je:
sidtoname.vbs
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Option explicit
Dim strSID
strSID = WScript.Arguments(0)
Dim strComputer
strComputer = "."
Dim objWMIService, objSID
Set objWMIService = _
GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objSID = objWMIService.Get("Win32_SID='" & strSID & "'")
WScript.Echo objSID.ReferencedDomainName & "\" & _
objSID.AccountName
Set objSID = Nothing
Set objWMIService = Nothing |
nametosid.vbs
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Option explicit
Dim objAccount, strComputer, strUser
Dim DomainName, objWMIService
If WScript.Arguments.Count < 1 Or WScript.Arguments.Count >= 3 Then
Wscript.Echo ""
Wscript.Echo "Geen, te veel of ongeldige parameters meegegeven."
Wscript.Echo "Usage: cscript nametosid.vbs NAME COMPUTER (optioneel)"
Wscript.Quit
Else
strUser = WScript.Arguments(0)
If Wscript.Arguments.Count = 2 Then
strComputer = LCase(Wscript.Arguments(1))
Else
strComputer = "."
End If
End If
DomainName = "[DOMEIN]"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objAccount = objWMIService.Get ("Win32_UserAccount.Name='" & strUser & "',Domain='" & DomainName & "'")
Wscript.Echo ""
Wscript.Echo strUser & " sid: " & objAccount.SID
Wscript.Echo ""
Set objAccount = Nothing
Set objWMIService = Nothing |
Sla de beide scripts op als (bijvoorbeeld) sidtoname.vbs en nametosid.vbs en voer ze uit met cscript.exe:
|
1 |
c:\>cscript.exe /nologo nametosid.vbs [naam] |
geüpdatet 2011-05-23: code verbetert zodat deze functioneert
Link to this post!
