Automatisierte, skriptbasierte Anmeldung mit dem Citrix Receiver – Teil 2
Mit der Einführung des Citrix Receivers 4.x hat sich einiges geändert. Der Storefront hat das altbekannte Webinterface abgelöst. Die PNAgent.exe gibt es nicht mehr im Citrix Receiver 4.x. Aber einige der PNAgent-Funktionen, die wir im ersten Artikelgenutzt haben, sind in die SelfService.exe gewandert.
Citrix Receiver 4.x – SelfService.exe
Die SelfService.exe liegt in dem Verzeichnispfad „C:\Program Files (x86)\Citrix\SelfServicePlugin\“. Über folgende Parameter verfügt die SelfService.exe:
- ShowAppPicker
- Logon
- Logoff
- Disconnectapps
- Reconnectapps
- Dump
- Exit
- Poll
Quelle: http://support.citrix.com/article/CTX138514
Damit eine automatische Anmeldung mit dem Citrix Receiver 4.x möglich ist, müssen drei Voraussetzungen erfüllt sein.
- Passthrough Authentication
Der genutzte Store muss Passthrough ermöglichen.
Eine gute Anleitung dazu ist hier zufinden: http://support.citrix.com/article/CTX133855 - Zuweisung der Anwendung im Citrix Receiver
Per Default wird dem User im Receiver Dashboard keine published Anwendung angezeigt. Er muss sich die Anwendung erst selbst zuweisen. Nach dieser Zuweisung erzeugt der Receiver eine EXE-Datei, womit die published App gestartet werden kann. Diese EXE-Datei benötigen wir für die automatische Anmeldung. Damit das automatisch erfolgt, hat Citrix Keywords eingeführt.
Ein gute Anleitung dazu findet ihr hier: http://support.citrix.com/proddocs/topic/receiver-windows-40/receiver-windows-config-app-delivery.html - Konfiguration Citrix Receiver
Der Receiver muss konfiguriert sein. Das kann bei der Installation erfolgen, manuell oder über das Setzen eines Registry-Keys.
Für die automatische Anmeldung benötigen wir drei Parameter: Logon, LogOff und Poll.
Logon
Mit Logon wird die Anmeldung am Store ausgelöst. Ist kein Passthrough konfiguriert, öffnet sich ein Fenster für die Eingabe von Username und Passwort.
Beispiel:
C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe –logon
Poll
Poll löst das Abfragen der Anwendungen aus. Sind die richtigen Keywords gesetzt, wird die entsprechende EXE durch den Receiver erzeugt. Bei meinen Tests hat das sehr oft extrem lange gedauert bis die EXE erzeugt wurde.
Beispiel:
C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe –Poll
LogOff
LogOff meldet die geöffnete Session ab.
Beispiel:
C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe –LogOff
Beispiel-Script:
Script zum automatischen An- und Abmelden einer Citrix XenApp Session – SelfService.exe
# Script zum automatischen An- und Abmelden einer Citrix XenApp Session # SelfService.exe # # A. Stalbold - Sepago GmbH # # $SelfServiceEXE = "C:\Program Files (x86)\Citrix\SelfServicePlugin\SelfService.exe" $publishedAppEXE = Join-Path -Path $env:appdata -ChildPath "\Citrix\SelfService\sepagoDESKTOP.exe" # Anmeldung Receiver Start-Process -FilePath $SelfServiceEXE -ArgumentList "-Logon" -Wait # Abrufen der published Apps Start-Process -FilePath $SelfServiceEXE -ArgumentList "-Poll" -Wait # Warten auf das erzeugen der EXE-Datei Do { Start-Sleep -Seconds 1 } until (Test-Path -Path $publishedAppEXE) # Schleife for ($i=1; $i -le 10; $i++) { Write-Host "Anmeldung: $i" # Start Published App Start-Process -FilePath $publishedAppEXE # Warten auf das Starten der Session Start-Sleep -Seconds 90 # Abmelden der Session Start-Process -FilePath $SelfServiceEXE -ArgumentList "-LogOff" -Wait # Warten auf das Abmelden der Session Start-Sleep -Seconds 90 } # Ende
Fazit
Wie bei dem Citrix Receiver 3.4 mit PNAgent, hat man mit der SelfService.exe des Receivers 4.x die gleichen Limitierungen. Die Session lässt sich nicht direkt steuern. Alles, was in der Session passieren soll, muss über ein weiteres Script erfolgen, z.B. durch ein Logon-Script.
Hinzu kommt noch, dass dieser Weg bei den Tests nicht besonders zuverlässig war. Die An- und Abmeldung hat des Öfteren nicht funktioniert. Der Receiver hat auf die Parameter nicht reagiert. Auch das Erzeugen der EXE-Dateien lief extrem langsam, Wartezeiten von über 5 Minuten waren keine Seltenheit.
Vielen Dank an dieser Stelle noch an Thomas von Fragstein, der einige Tests für mich übernommen hat.
Ausblick
Seit März 2007 ist im Receiver das ICA Client Object SDK integriert. Das SDK ermöglicht uns die Steuerung des Receivers unter Powershell über ein Object. Wie das genau funtkioniert unter Powershell schauen wir uns im Teil 3 an.