vbscript - 如何获取事件 session 用户SID?

标签 vbscript cmd

如何获取事件 session 用户SID? (这是当前用户 session )

我可以使用 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
'******************************************************************

注意:我从这个链接得到它 How to find out logged on users SID with VBScript?

关于vbscript - 如何获取事件 session 用户SID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39350842/

相关文章:

sql - 使用 VB 通过 ASP 页面连接到 SQL Server 2000?

java - 如何在Java程序中使用CMD命令?

java - 以交互方式向 java.lang.Process 发送命令失败

Windows 批处理文件 - 嵌套 FOR 循环中的变量

android - 谷歌地图获取 key 错误您的输入无效

powershell - 更改无线网络安全 key CMD 或 VBScript

vbscript - 对 asp 中的参数化 SQL 语句进行故障排除

date - vbscript asp - 查找给定月份中的每个星期四

asp-classic - VBScript 条件短路解决方法

powershell - Net.WebClient.DownloadFile从批处理文件下载Google云端硬盘文件无法识别某些字符