如何获取活动会话用户SID? (这是当前用户会话)
我可以使用 CMD 命令来做到这一点:
for /f "tokens=2-4" %a in ('qwinsta') do @if "%c"=="Active" wmic useraccount where name='%a' get sid
也许有人可以告诉我如何用 VBScript 做同样的事情?
“当前用户”是指“在 UAC 让我输入管理员凭据之前启动脚本的帐户”。
尝试一下这个 vbscript :
Option Explicit
Dim strUser
strUser = CreateObject("WScript.Network").UserName
Wscript.echo "The SID of this username " & strUser & " is :" &_
vbcr & GetSIDFromUser(strUser)
'******************************************************************
Function GetSIDFromUser(UserName)
Dim DomainName, Result, WMIUser
If InStr(UserName, "\") > 0 Then
DomainName = Mid(UserName, 1, InStr(UserName, "\") - 1)
UserName = Mid(UserName, InStr(UserName, "\") + 1)
Else
DomainName = CreateObject("WScript.Network").UserDomain
End If
On Error Resume Next
Set WMIUser = GetObject("winmgmts:{impersonationlevel=impersonate}!" _
& "/root/cimv2:Win32_UserAccount.Domain='" & DomainName & "'" _
& ",Name='" & UserName & "'")
If Err.Number = 0 Then
Result = WMIUser.SID
Else
Result = ""
End If
On Error GoTo 0
GetSIDFromUser = Result
End Function
'******************************************************************
NB :我从这个链接得到的如何使用VBScript找出登录用户的SID?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)