Da die alte Variante mit dem Citrix PNAgent.exe /qlaunch nichtmehr funktioniert suchte ich nach einer Lösung dies in Verbindung mit XenDesktop 7.8 & dem Citrix Receiver 4.4.1 abzubilden.
Ziel sollte es dabei sein, eine Published Application oder einen Published Desktop mittels Verknüpfung oder Script zu starten um beispielsweise beim Verteilen von Anwendungen auch auf andere Launcher zurückzugreifen.
Update: Wie aus den Kommentaren zu erkennen ist, kann eine bestimmte
Applikation auch mit dem -qlaunch Parameter der SelfService.exe aufgerufen werden. Die Voraussetzungen sind weiterhin, dass eine Authentifizierung mittels SSON bereits erfolgt sind. Anschließend kann eine Published Application mittels
selfservice.exe -qlaunch “appname”
gestartet werden. Dabei werden sogar Parameter interpretiert wie beispielsweise der Aufruf eines Published Internet Explorer 11 mit dem Zugriff auf die Seite www.google.de
selfservice.exe -qlaunch “IE11” http://www.google.de
Der alte Beitrag:
Ich wurde dabei hier teilweise fündig:
Leider ist der dort beschriebene Weg nicht mehr aktuell. Citrix hat nichtnur den Pfad der SelfService.exe (dem eigentlichen Citrix Receiver) von „%Programfiles(x86)%\Citrix\SelfServicePlugin“ auf „%Programfiles(x86)%\Citrix\ICA Client\SelfServicePlugin“ geändert, sondern auch die Art wie die Applikationen dann am Client abgebildet werden.
Ursprünglich bis zur Receiver Version 4.3 (?) wurde jede vom User favorisierte -Anwendung als EXE-File unter „%APPDATA%\Citrix\ServService“ abgelegt. Das hat sich mit dem Citrix Receiver 4.4 jedoch geändert.
Die Favoritenanwendungen des Anwenders werden nicht mehr als EXE abgelegt, sondern wurden lediglich als Einträge in der Registry unter „HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall“ hinterlegt. Die Verknüpfungen, die der Citrix Receiver jetzt beim User auf den Desktop oder ins Startmenü legt, verweisen auf diesen Registry-Pfad.
Dort tauchten sie dann als Key auf, wie hier beschrieben: http://support.citrix.com/article/CTX200337
Meine Idee war es, das Script von Ansgar anzupassen. Da ich Powershell-Technisch jedoch nicht besonders bewandt bin, bat ich meinen Freund & Kollegen Frank-Peter <PIT> Schultze um Unterstützung. Danke dafür @fpschultze
Das Ergebnis ist eine überarbeitetes PS-Script. Die Voraussetzungen sind geblieben:
- Citrix Receiver 4.4.x > Download via Citrix
- Enabled SSON / Pass-through > Perfekte Anleitung von Carl Stalhood
Das Script kann entweder direkt aufgerufen werden, wobei der Name der Anwendung im Script eingetragen werden muss:
14 | $PublishedApp = 'Desktop' |
oder den Namen der Anwendung wird direkt im Aufruf übergeben:
1 | powershell.exe autolaunch.ps1 „Word“ |
Direktaufruf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <# .SYNOPSIS Startet eine Citrix Published App oder Desktop .NOTES Basiert auf Script von A. Stalbold - Sepago GmbH Anpassungen durch F.P.Schultze - F&M #> Param ( #Name der Published App oder Desktop [Parameter()] [string] $PublishedApp = 'Desktop' ) $SelfServiceExe = '{0}\Citrix\ICA Client\SelfServicePlugin\SelfService.exe' -f ${env:ProgramFiles(x86)} $PublishedAppKey = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*@@*.{0}' -f $PublishedApp $LaunchString = $null # Anmeldung Receiver Start-Process -FilePath $SelfServiceEXE -ArgumentList '-Logon' -Wait # Abrufen der Published Apps (erzeugt Regschlüssel) Start-Process -FilePath $SelfServiceEXE -ArgumentList '-Poll' -Wait # Sobald verfügbar, Launch-Informationen lesen do { if (Test-Path -Path $PublishedAppKey) { $LaunchString = (Get-ItemProperty -Path $PublishedAppKey -Name LaunchString).LaunchString break } Start-Sleep -Seconds 1 } while ($true) # Start Published App Start-Process -FilePath $SelfServiceExe -ArgumentList $LaunchString |
Download: autolaunch.zip
Danke für´s lesen!
Christian
Hallo eine Frage…
wir haben den Citrix Receiver 4.6 installiert
und möchten das sich der receiver automatisch öffnet und den desktop automatisch öffnet und dann die anmeldemaske kommt
das macht doch diese ps1 oder?
Bei uns funktioniert es nicht
was muss man in dem beispiel oben ändern bzw anpassen das es funktioniert?
Hi, die Anmeldung muss schon zuvor mittels Passthrough Authentication abgeschlossen sein. Siehe Anleitung von Carl Stalhood
Eine Anmeldemaske kommt seit 2012r2 nicht mehr. Die Authentifizierung muss zuvor erfolgen.
VG
Christian
Falls das Thema noch für jemanden aktuell ist:
auch die aktuelle Selfservice.exe kennt den Parameter -qlaunch.
selfservice.exe -qlaunch NameDerAnwendung und die Anwendung oder der Desktop wird gestartet. Den Weg über die Registry kann man gehen, muss man aber eigentlich nicht. Für den Autostart kann man sich eine eine Verknüpfung erstellen und diese in den Autostart -Ordner legen. Geht auch per C# oder WMI
“C:\Program Files (x86)\Citrix\ICA Client\SelfServicePlugin\SelfService.exe” -qlaunch Anwendungsname.
Wenn der Storefront und der Receiver lokal so konfiguriert ist, dass passthrough verwendet wird startet die Anwendung sofort. Ist beides so konfiguriert das Username/Kennwort verwendet werden soll, kommt erst die Anmeldemaske, und dann startet die Anwendung.
Gruß Blue
Hi Blue,
ja – das vereinfacht die Sache natürlich. 🙂
In den Citrix-Docs steht, dass diese Option den Receiver 4.2 voraussetzt. Ich bin mir aber (ziemlich) sicher, dass es damals (als ich mich mit der Thematik beschäftigt hatte) es diese Option nicht gab. Seltsam.
Viele Grüße
Christian
Der -qlaunch Parameter wurde von uns ersten Mal mit dem Receiver 4.3 produktiv eingesetzt. Das ist auch die erste Version an die ich mich erinnern kann die diesen Parameter hatte. Es war ein Request von uns/der Firma für die ich damals noch als externer MA gearbeitet habe. Vorher habe ich es etwas aufwändiger realisiert. Zuerst den User gegen den Storefront authentifiziert, dann mit selfservice.exe Argumenten die cache.xml downgeloadet, in dieser dann nach dem richtigen Launch-String für die App/den Desktop gesucht, diesen extrahiert und mit C# den Aufruf gestartet :-). Geht auch, aber -qlaunch ist nicht so umständlich. Der Kunde wollte weder die Selfservice UI sichtbar für den User haben, noch die Startscreen-Icons die Citrix erstellt anzeigen lassen.