gpt4 book ai didi

vbscript - VB 使用 WMI - 获取登录用户

转载 作者:行者123 更新时间:2023-12-02 20:22:21 31 4
gpt4 key购买 nike

如何将 VB 脚本与 WMI 结合使用来获取登录用户的数量。我的安装只能有一名用户登录,如果有多个用户登录(通过使用 Citrix 的终端服务),则需要报告错误。我对 Citrix 不太了解,但 LogonType = 10Win32_LogonSession 似乎返回各种垃圾(端口 session 等)。我只需要用户...是否有任何 WMI 调用可以让我获取登录 Citrix 的用户数量?下面是我的 VB 代码片段:

Set objWMIService = _
GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\cimv2")
Set colComputer = _
objWMIService.ExecQuery("Select * from Win32_LogonSession Where LogonType = 10")

谢谢!-jp

最佳答案

以下代码应该可以帮助您(对本地计算机使用 strComputer="."strComputer="MachineName"):

strComputer = "."   
Set objWMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")


Set colSessions = objWMI.ExecQuery _
("Select * from Win32_LogonSession Where LogonType = 10")


If colSessions.Count = 0 Then
Wscript.Echo "No interactive users found"
Else
WScript.Echo "RDP Sessions:"
For Each objSession in colSessions

Set colList = objWMI.ExecQuery("Associators of " _
& "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " _
& "Where AssocClass=Win32_LoggedOnUser Role=Dependent" )
For Each objItem in colList
WScript.Echo "Username: " & objItem.Name & " FullName: " & objItem.FullName
Next
Next
End If

原始代码在这里:

How to show logged on users? (Tek-Tips Forums)

这确实适用于 Windows 2003,我无法对更高版本做出任何保证。

关于vbscript - VB 使用 WMI - 获取登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898757/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com