如何获取活动会话用户SID? [英] How to get active session user SID?

查看:250
本文介绍了如何获取活动会话用户SID?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何获取活动的会话用户SID? (它是当前用户会话)

How to get active session user SID? (it is current user session)

我可以使用CMD命令:

I can do this using CMD command:

for /f "tokens=2-4" %a in ('qwinsta') do @if "%c"=="Active" wmic useraccount where name='%a' get sid

也许有人可以告诉我如何做VBScript?

Maybe someone can tell me how to do same with VBScript?

当前用户我的意思是在UAC之前启动脚本的帐户使我输入管理员凭据。

By "current user" I mean "the account that started the script before UAC made me enter Admin credentials".

推荐答案

试试这个vbscript:

Give a try for this 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
'******************************************************************

注意: 我从此链接获得 如何找出登录的用户使用VBScript的SID?

NB : I got it from this link How to find out logged on users SID with VBScript?

这篇关于如何获取活动会话用户SID?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆