| | 0

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.

Bisher erschienene Teile: