Mit DSM 7 besteht die Möglichkeit, seine Citrix Farm(en) komplett automatisiert zu betreiben.

Dazu gibt es das Modul „DSM Citrix Support“. Dieses Modul muss extra lizensiert werden.

Ich möchte heute das Publishen von Applikationen zeigen. Als Beispiel nehme ich mal die Software Ultra VNC. Diese wird erst mal als normales DSM Paket auf dem Server installiert. Jetzt geht es darum, einem bestimmten Benutzerkreis die Anwendung als Published Application zur Verfügung zu stellen.

In der Application Library gibt es im Kontextmenü den Punkt „Citrix Management\Veröffentlichungs-Einstellungen“.

Bei dem Punkt „eScript-Paket mit den zugehörigen Massendaten“ wird das bereits auf dem Server installierte Ultra VNC Paket ausgewählt.

Jetzt muss die gewünschte Komponente ausgewählt „Bearbeiten“ geklickt werden. Wichtig ist auch die entsprechende Komponente zu aktivieren. Alle deaktivierten Komponenten werden rot markiert (siehe Screenshot).

michi_citrix_01_small

In den nächsten Schritten besteht die Möglichkeit die Ordner anzugeben, die dann entsprechend in der Citrix Konsole angelegt werden, um die Applikationen zu strukturieren.

Nun kommen wir zu einem sehr wichtigen Punkt, bei dem schnell Fehler gemacht werden können.

Es gibt zwei Möglichkeiten die Anwendung zu Publishen. Entweder direkt die ausführbare Datei starten, oder das Paket über die NiStart.exe ausführen.

Mit der NiStart.exe können Anwendung gestartet und gleich die benötigten User Settings mitliefert werden, um die Published Application mit den erforderlichen Einstellungen zu nutzen. Dazu muss die Anwendung wie im nächsten Screenshot zu sehen angegeben werden:

michi_citrix_02_small

Bei „Ausführen in“ ist zwingend das DSM Client Verzeichnis anzugeben, da ansonsten folgende Fehlermeldung bei Start erscheint:

michi_citrix_03_small

Es wird nämlich nicht direkt die vncviewer.exe gestartet, sondern die NiStart.exe. Das kann man in der Citrix Konsole auch in den Eigenschaften der Published Application sehen. Dort ist der Ausführungsstring folgendermaßen angegeben:

michi_citrix_04_small

Man kann natürlich auch die PATH Variable um das Verzeichnis %ProgramFilesDir%\netinst erweitern. Denn wenn .NET Anwendungen gepublished werden müssen, benötigen diese das Programmverzeichnis als Ausführungsverzeichnis. Dann funktioniert das Publishen mit NiStart nur noch mit einer angepassten Path Variable.

Doch wie weiß DSM jetzt, was es zu tun hat? Beim Anlegen des Publishing Pakets wurde das bereits installierte Ultra VNC Paket angegeben. Nach der Installation wird die GUID des Pakets automatisch in der Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\NetSupport\NetInstall\Installed Apps\{Paket GUID}\ eingetragen. Darunter gibt es einen weiteren Schlüssel „ApplicationStarter“ mit weiteren GUIDS. Hier findet sich auch der Eintrag für die vncviewer.exe mit der entsprechenden Policyinstanz ID. Diese wird dann durch den niinst32.exe Prozess ausgeführt, und die User Settings werden nachgezogen. Anschließend öffnet sich das Programm auch direkt, da diese Information in der Registry hinterlegt ist.

Im nistarter.log sieht man dann auch die genauen Informationen wie die NiStart.exe tatsächlich aufgerufen wird. Der Pfad, welcher in der Citrix Konfiguration hinterlegt ist, wird zur Laufzeit angepasst, und sieht dann folgendermaßen aus:

nistart.exe /Script:"MDSID:PolicyInstance.2437965" /Name:"ULTRA_VNC"  /OrgCmd:"C:\Program Files\UltraVNC\vncviewer.exe"

Sollte das Paket Ultra VNC noch nicht auf dem Server installiert sein, erscheint beim Start der Published Application folgende Fehlermeldung:

michi_citrix_05_small

Das liegt daran, dass der InstalledApps Key in der Registry nicht gefunden werden kann.

Soll die Anwendung jedoch gestartet werden, ohne dass User Settings nachgezogen werden, kann der Haken „NetInstall-Starter verwenden“ auch weggelassen werden.

Die Applikation wird dann wie folgt konfiguriert:

michi_citrix_06_small

Jetzt muss auch bei „Ausführen in“ das tatsächliche Programmpaket angegeben werden.

Wenn das Paket dann zugewiesen, und die entsprechende Usergruppe ausgewählt wird, legt DSM die Published Application auf dem Server an.