2012-02-10 33 views
2

特定のユーザーをログオフするために特定のCitrix作業を行うためにWMIを使用しています。最初に、MetaFrame_Sessionという名前のオブジェクトを列挙して、現在のセッションを一覧表示してから、ユーザー名を持つCitrix_Userというオブジェクトを取得する必要があります。WMIオブジェクト参照からWMIオブジェクトを取得する方法

SessionオブジェクトにはUserオブジェクトへの参照が含まれていますが、私はWMIに詳しくないので、参照から実際のオブジェクトを取得する方法がわかりません。 VBScriptでこれを行う方法の例としては、非常に参考になる

+0

http://stackoverflow.com/questions/18092577/how-to-get-wmi-object-from-aあるので、あなたは、文字列操作であることを行うことができます-wmi-object-reference –

+0

私は同様の問題があります。私は参照からオブジェクトを取得する必要があります。これを理解しましたか? –

答えて

0

あなたはどちらか、このother forumに答えを見つけることができなかったようだが、ためHaydn Daviesによって次のようにWMIを使用してCitrixセッションをログオフするコードは、親切にhere投稿されました1つの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を参照して修復してください。

+0

その問題が解決された場合は、ここで私の質問に答えることができます:http://stackoverflow.com/questions/18092577/how-to-get-wmi-object-from-a-wmi-object-reference –

+0

@Saher申し訳ありませんが、私はあなたが探しているものに答えることはできないと思う。 :( – Lizz

0

"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 if 
+0

私はUserNameが20文字よりも短いと仮定しました – Marcin

関連する問題