Cube Silver 180x180

In einer größeren neuen Kundenumgebung mit Citrix XenApp 7.6 sollten die Anmeldezeiten und die Profile klein gehalten werden. In der neuen XenApp Umgebung werden Anwendungen über App-V 5 (SP3) bereitgestellt. Die Veröffentlichung erfolgt im Citrix Studio. Andere Anwendungen sind direkt im „Golden Image“ für den Citrix Provisioning Server integriert. Wir haben 120 Veröffentlichungen, von denen rund 90% über App-V 5.0 bereitgestellt werden.
Alle Anwender bekommen ein „schlankes“ Mandatory Profile. Die Einstellungen der Anwendungen sind mit dem Appsense Environment Manager im Profile Manager konfiguriert und werden nach einer Anmeldung automatisch von einem Microsoft SQL Server geladen und bei einer Abmeldung wieder gespeichert.Die Grupenrichtlinien wurden speziell Terminalserver optimiert.
Die Umgebung hatte nach den Daten des Directors eigentlich recht gute Startzeiten. Nur leider nicht bei der morgentlichen Erstanmeldung beim Start einer App-V Anwendung.

 

Der App-V Start mit Anmeldung dauerte bis zu 45 Sekunden. Nachdem ein Anwender (in der Pilotumgebung) sich einmalig anmeldet, hat, kann er problemlos arbeiten. Weitere App-V Anwendungen starten schnell. Eine Erstanmeldung mit einer lokal installierten Anwendung erfolgt auch schnell. Also ein problem mit App-V 5 und Citrix!

Nun, woher kommt das Problem. Wir haben uns die Haare gerauft und erst einmal eine Frage bei Citrix Discussoionen gestellt. Weitergeholfen hat uns das nicht wirklich. Jeder Anwendungsstart für eine App-V Anwendung erfolgt über den Citrix App-V Launcher (ctxappvlauncher.exe). Für jeden Start kann ein

erweitertes Logging aktiviert werden. Das Log liefert das folgende Bild:

08.10.2014 15:45:39 CtxAppVLauncher: 0,00 minutes
08.10.2014 15:45:39 CtxAppVLauncher: FUNCTION: GetPackageSyncStatus MESSAGE: Entered Method
08.10.2014 15:45:3
9 CtxAppVLauncher: FUNCTION: RunScript MESSAGE: Entered Method
---> 24 Seconds!!!
08.10.2014 15:46:03 CtxAppVLauncher: FUNCTION: RunScript MESSAGE: Exit Method
08.10.2014 15:46:03 CtxAppVLauncher: FUNCTION: GetPackageSyncStatus MESSAGE: The VersionID is : 9efdf9f7-6e3d-457f-87f4-3524937bae4a
08.10.2014 15:46:03 CtxAppVLauncher: FUNCTION: GetPackageSyncStatus MESSAGE: The Package count is : 1 PackageFound : TRUE
08.10.2014 15:46:03 CtxAppVLauncher: FUNCTION: GetPackageSyncStatus MESSAGE: Exit Method
08.10.2014 15:46:03 CtxAppVLauncher: FUNCTION: ConverttoArrayCmdLine MESSAGE: NO SYNC REQUIRED
08.10.2014 15:46:03 CtxAppVLauncher: FUNCTION: ConverttoArrayCmdLine MESSAGE: NO SYNC REQUIRED

Nun haben wir angefangen, das Problem mit Sysinternal Werkzeugen wie dem Process Monitor und einfach Tests zu analysieren.

Das Ergebnis ist recht interessant. Das Citrix Starttool zur Steuerung von App-V Anwendungen arbeitet nicht mit Verknüpfungen oder Informationen aus der Datenbank, sondern kommuniziert direkt mit dem App-V 5 Publishing Server. Anwendungen werden voraussichtlich einfach mit Start-AppvVirtualProcess oder ähnlichen Befehlen ausgeführt. 

Hier liegt auch schon das Problem. Beim ersten Start von CtxAppvLauncher.exe legt Prowershell einen lokalen Cache im Benutzerprofil unter „%APPDATALOCAL%“ an.

Powershell cache in the userprofile appdatalocal

Das betrifft die komplette Ersteinrichtung für eine Powershellumgebung bei einem Erststart! Auch AppSense EM hätte das übernehmen können, über eine entsprechende globale Konfiguration. Aber im Mandatory Profile ist es besser aufgehoben und würde so auch mit anderen Lösungen wie dem Citrix Profile Manager oder Flex Profiles funktionieren.

Es passierte also folgendes. Benutzer meldet sich mit seinem Mandatory Profile an. Citrix Startet den CtxAppVLauncher.exe das Laden der Powershellumgebung in dem Tool führt dazu, dass der Cache erzeugt wird.

Nachdem wir dafür gesorgt haben, dass der entsprechende Cache im Mandatory angelegt wird, erfolgten alle erst Anmeldung mit App-V Anwendungsstart im Bereich 15 bis 20 Sekunden.