我正在使用WMI执行一些Citrix工作,特别是搜索要注销的特定用户。首先,我必须枚举一个名为MetaFrame_Session的对象,该对象列出当前会话,然后我必须从中检索一个名为Citrix_User的对象,该对象具有用户名。
Session对象包含对User对象的引用,但我对WMI不是很熟悉,对于如何从引用中获取实际对象感到困惑。有关如何在VBScript中执行此操作的示例将非常有用
发布于 2013-01-09 04:13:59
似乎你在这个other forum上也找不到答案,但是使用WMI注销Citrix会话的代码是由Haydn Davies在一台Citrix服务器上发布的,如下所示:
' Logoff Disconnected Sessions
' If you want to logoff active sessions as well, change the query to include
' cActive
On Error Resume Next
Const cActive = 0
Const cDisconnected = 4
Const strComputer = "."
Set objWMICitrix = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\citrix")
Set colItems = objWMICitrix.ExecQuery ("Select * from Metaframe_Session Where sessionstate = " & cDisconnected)
For Each objItem in colItems
if (objItem.SessionID > 0) and (objItem.SessionID < 65530) then
objItem.Logoff
end if
Next
Set objWMICitrix = Nothing有关如何获取Citrix VirtualIP的代码,请参阅here,因为它可能有助于作为技术参考。另外,如果您发现服务器上的WMI已损坏,请参阅here进行修复。
发布于 2016-03-04 03:17:51
可以使用字符串操作来完成此操作,因为"SessionUser“是一个字符串
dim name
For Each objItem in colItems
name=left(Mid(objItem.SessionUser,InStr(objItem.SessionUser,"=")+2,20),InStr(Mid(objItem.SessionUser,InStr(objItem.SessionUser,"=")+2,20),",")-2)
if (name="YOUR_SEARCH_NAME") and (objItem.SessionID < 65530) then
objItem.Logoff
end ifhttps://stackoverflow.com/questions/9229997
复制相似问题