GetAdminName.vbs:
'''''Code Start ''''' Wscript.Echo GetAdminName Function GetAdminName Set objNetwork = CreateObject("Wscript.Network") 'get the current computer name objComputerName = objNetwork.ComputerName Set objwmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & objComputerName) qry = "SELECT * FROM Win32_Account where Domain = '" & cstr(objComputerName) & "'" 'set query, making sure to only look at local computer For Each Admin in objwmi.ExecQuery(qry) if (left(admin.sid, 6) = "S-1-5-" and right(admin.sid,4) = "-500") then 'look for admin sid GetAdminName = admin.name end if next End Function '''''Code End'''''
在.bat中获取.vbs返回值
GetAdminName.bat
@echo off for /f "delims=" %%x in ('cscript //nologo t.vbs') do ( set sFileName=%%x ) echo %sFileName% REM pause.
命令行查询用户对应的SID
C:\Users\Administrator>wmic useraccount where "SID like 'S-1-5-%-500'" get sid SID S-1-5-21-2837057897-1460117072-2570820871-500 E:\temp>wmic useraccount where "SID like 'S-1-5-%-%'" get caption,sid Caption SID SHANE-WORKPLACE\Administrator S-1-5-21-4246277841-3966888941-2683127511-500 SHANE-WORKPLACE\DefaultAccount S-1-5-21-4246277841-3966888941-2683127511-503 SHANE-WORKPLACE\Guest S-1-5-21-4246277841-3966888941-2683127511-501 SHANE-WORKPLACE\Shane.Wan S-1-5-21-4246277841-3966888941-2683127511-1001