首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得活动会话用户SID?

如何获得活动会话用户SID?
EN

Stack Overflow用户
提问于 2016-09-06 13:55:12
回答 2查看 3.6K关注 0票数 2

如何获得活动会话用户SID?(这是当前用户会话)

我可以使用CMD命令来完成这个任务:

代码语言:javascript
复制
for /f "tokens=2-4" %a in ('qwinsta') do @if "%c"=="Active" wmic useraccount where name='%a' get sid

也许有人能告诉我如何对VBScript做同样的事情?

“当前用户”指的是“在UAC让我输入Admin凭据之前启动脚本的帐户”。

EN

回答 2

Stack Overflow用户

发布于 2016-09-06 14:15:27

尝试一下这个vbscript:

代码语言:javascript
复制
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?得到的

票数 2
EN

Stack Overflow用户

发布于 2016-09-06 14:42:43

获取当前登录域用户的SID

从命令行运行命令whoami /user,以获取登录用户的SID

示例:

用户信息

你可以用批处理文件做这样的事情:

代码语言:javascript
复制
@ECHO OFF
SETLOCAL enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=," %%a in ('Whoami /user /FO CSV') do ( 
    set "UserName=%%a"
    set "SID=%%b"
    echo The username logged is : !Username!
    echo.
    echo And its SID = !SID!
)
pause
exit
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39350842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档