Gibt es eine Möglichkeit einen Snapshot von allen Benutzern zu machen, die eine Anwendung in Citrix geöffnet haben?Ja – zum Beispiel per Skript.
Das Script „Citrix_Dump.vbs“ liest die angemeldeten Benutzer einer Citrixfarm und gibt das Ergebnis in einer übersichtlichen HTML-Datei aus. Das Visual-Basic-Script lässt sich leicht für administrative Zwecke erweitern, um zum Beispiel direkt nur auf einem Benutzer zu prüfen, ob er eine Anwendung gestartet hat und wenn ja, auf welchem Server. Es ist daher eine schnelle Alternative zur Citrix-Konsole. Für die Hotline kann man die Funktionen auch in ASP abbilden, falls sie darüber schon andere Aufgaben wahrnimmt.
Aufgrund der benötigten Objekte, die Citrix mitbringt, muss das Script auf einem Citrixserver ausgeführt werden. Das Script wird im Explorer einfach mit einem Doppelklick gestartet, es prüft zunächst ob es ein Verzeichnis „c:\Log“ gibt und legt es gegebenenfalls an. Selbstverständlich kann man das Verzeichnis seinen Wünschen entsprechend anpassen. Danach werden lediglich drei Routinen aufgerufen.
1. „S_HTML_HEAD“ – Der HTML-Kopf wird erstellt
2. „S_ListSession“ – Die Hauptprozedur
3. „S_HTML_END“ – Das HTML-Ende wird erstellt
Die einzeiligen Routinen 1 und 3 dürften selbsterklärend sein. In der Hauptprozedur „S_ ListSession“ wird in der Variabel „O_Farm“ das Farm-Objekt „MetaFrameCOM.MetaFrameFarm“ instanziiert und danach initialisiert. Nach dem Tabellenaufbau werden in einer for-Schleife sämtliche Sitzungen erfasst und folgende Informationen Zeilenweise ausgegeben: Zeilennummer, Benutzer, Server, auf dem die Anwendung gestartet wurde, Anwendungsname und wann die Anwendung gestartet wurde.
Das Script muss nicht an die eigene Domäne angepasst werden, da alle benötigten Informationen aus dem Citrix-Objekt ausgelesen werden.
-
‚Citrix_Dump.vbs
-
‚Wer ist gerade an Citrix angemeldet und hat welche Anwendung offen
-
‚Autor: eink@code-master.de
-
‚22.08.2006/ge
-
Option explicit
-
const C_Log = „c:\log\Citrix_Dump.html“
-
DiM O_FSO
-
DIM O_Log
-
Set O_FSO = CreateObject(„Scripting.FileSystemObject“)
-
if O_FSO.FolderExists(„c:\Log“) then
-
Set O_Log = O_FSO.OpenTextFile(C_Log,2,true)
-
else
-
O_FSO.CreateFolder „c:\log“
-
Set O_Log = O_FSO.OpenTextFile(C_Log,2,true)
-
end if
-
call S_HTML_Head
-
call S_ListSession
-
call S_HTML_End
-
‚#################################
-
‚Auf welchem Server ist der User angemeldet
-
sub S_ListSession
-
‚Variabeln initialisieren
-
DIM O_Farm
-
DIM aSession
-
DIM L_Counter
-
‚Verbindung zum Farm-Objekt herstellen
-
Set O_Farm = CreateObject(„MetaFrameCOM.MetaFrameFarm“)
-
O_farm.initialize 1
-
‚Zeilennummer
-
L_Counter = 1
-
O_Log.writeline „Dump erstellt am: „ & now
-
O_Log.writeline „<hr size=3 noshade>“
-
O_Log.writeline „<table border=1 cellpadding=2 cellspacing=0 bordercolor=black>“
-
O_Log.writeline „<tr align=center><td width=20><b>Nr.</b></td><td width=200><b>User</b></td><td width=200><b>Server</b></td><td><b>Anwendung</b></td><td><b>Zeit</b></td></tr>“
-
For Each aSession In O_Farm.Sessions
-
O_Log.writeline „<tr><td>“ & L_Counter & „</td><td>“ & aSession.UserName & „</td><td>“ & aSession.ServerName & „</td><td>“ & aSession.Appname & „</td><td>“ & aSession.LogonTime(True).Day & „.“ & aSession.LogonTime(True).Month & „. „ & aSession.LogonTime(True).Hour & „:“ & aSession.LogonTime(True).Minute & „:“ & aSession.LogonTime(True).Second & „</td></tr>“
-
L_Counter = L_Counter + 1
-
Next
-
O_Log.writeline „</table>“
-
end sub
-
‚HTML Kopf
-
sub S_HTML_Head
-
O_Log.writeline „<hthml><head></head><body>“
-
end sub
-
‚HTML Ende
-
sub S_HTML_End
-
O_Log.writeline „</body></html>“
-
end sub
http://faq-o-matic.net/?p=644