Posted in : Citrix, Receiver

2 years ago

 
We started a new project with one of our clients creating a new MCS master with Windows Server 2016. One of their most critical business applications do not support Windows Server 2016 with their current version of the application. In the best of world it woulds, we would just update the application, but sometimes this is just not possible or an option. One of our ideas to solve this was to create a second master with Windows Server 2008R2 and publish the application in the Windows Server 2016 start menu with Citrix Receiver. I will guide you below how we managed to get this to work very smoothly.
 
The first thing you will want to do is to install Citrix Receiver on to the Windows Server 2016 Master. If you installed Citrix Receiver with the VDA-agent, you may skip this step. If not, you must install Citrix Receiver using below parameters:

CitrixReceiver.exe /includeSSON Enable_SSON=YES

 
After this you will want to create a new GPO, apply it to all your Windows Server 2016 Targets and configure the following settings:

When the user logs in we want Citrix Receiver to start immediately and connect to the StoreFront. Since we are using redirected start menus for all users we published the following icon in the ”startup” folder.

"C:\Program Files (x86)\Citrix\Online Plugin\SelfServicePlugin\SelfService.exe" -ipoll


Starting Citrix Receiver with the tag ”ipoll” will contact the server to refresh application details, but if no authentication context is available, prompt the user for credentials. You may read more about the Citrix Receiver tags here.
 
The next thing you will want to do is to log in with a test user. Citrix Receiver should now start for the user in the background and connect to the StoreFront. Log in as an administrator to the session host and browse to ”HKEY_USERS\{SID_FOR_TEST_USER}\Software\Microsoft\Windows\CurrentVersion\Uninstall”. You may now see all published applications as keys.

You’ll want to focus on the registry setting ”LaunchString”. Copy the value in ”LaunchString”. It should look something like below.

-launch -s CLIENT-64534ae2 -CitrixID "CLIENT-64534ae2@@XD-Controllers.APPLICATION" -ica https://storefront.CLIENT.se/Citrix/CLIENT/resources/v2/WEQtQ29udHJvbGxlcnMuSUJTIFhUIENsaWVudA--/launch/ica -cmdline

 
This string is unique for every application. This string is not unique for every user. We will want to use this string with Citrix Receiver.

"C:\Program Files (x86)\Citrix\Online Plugin\SelfServicePlugin\SelfService.exe" -launch -s CLIENT-64534ae2 -CitrixID "CLIENT-64534ae2@@XD-Controllers.APPLICATION" -ica https://storefront.CLIENT.se/Citrix/CLIENT/resources/v2/WEQtQ29udHJvbGxlcnMuSUJTIFhUIENsaWVudA--/launch/ica -cmdline

 
Optimal would of course be to publish a shortcut in the redirected start menu, but since the string is to long the shortcut is capped with max characters. We must therefore create a script like below.

<#
    .NOTES
        Name: CTX-VDA-A-CR-Application.ps1
        Author: Måns Hurtigh, Xenit AB
        Date Created: 2018-06-27
        Version History:
            2018-06-27
            - Initial Creation
#>
[cmdletbinding()]
Param(
    [string]$CitrixReceiver = "C:\Program Files (x86)\Citrix\Online Plugin\SelfServicePlugin\SelfService.exe",
    [string]$Store = "CLIENT-64534ae2",
    [string]$ApplicationID = "CLIENT-64534ae2@@XD-Controllers.APPLICATION",
    [string]$ICA = "https://storefront.CLIENT.se/Citrix/CLIENT/resources/v2/WEQtQ29udHJvbGxlcnMuSUJTIFhUIENsaWVudA--/launch/ica"
)
Begin{
}
Process{
    	& $CitrixReceiver -launch -s $Store -CitrixID $ApplicationID -ica $ICA -cmdline
}
End {
}

 
Browse to the redirected start menu and create a shortcut with target like below.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "%CTXFSROOT%\Scripts\CTX-VDA-A-CR-Appliation.ps1"


When the user logs in to the session and launches the application it should start from the Windows Server 2008R2 machines like below.
 


Hope this works as well for you as it does for me. Give me a comment below if you have any problems.

Tags :

Comments

Guest says

Hi, could you explain how your storefront is configured? Is there also the requirement to set passthrough authentication?

Måns Hurtigh says

Hi! Yes! The StoreFront doesn't really need any special configuration. You need to set passthrough authentication for the SSO with Receiver to fully work. If you don't want to turn on passthrough authentication on the Store, you may create a new Store and configure it with passthrough authentication and disable to advertise the Store.
I hope this helps. Please answer this or get back to me on twitter (https://twitter.com/manshurtigh). Then we may talk a bit more in detail.

Add comment

Your comment will be revised by the site if needed.