The information in this article applies to Prism Deploy versions 6, 7, 8, 9.
Using Prism Deploy in a Citrix/Terminal Server Environment
Beginning with version 6.0, Prism Deploy is fully compatible with Citrix servers and Terminal servers. Instead of individual workstations subscribing to a Prism Deploy Channel, the Citrix or Terminal servers subscribe to the Channel*. Tasks are assigned to the servers through the Prism Console, and users who open sessions on the server receive the tasks.
Multiple Polling Clients
When a user establishes a terminal session with a subscribing Citrix/Terminal server, both the unattended Prism client (running as local system) and the attended Prism client (in the user session) are active, thus at least two instances of ptclient.exe appear in Task Manager. On a terminal server the unattended client can be considered an always logged-on user.
When a task that is not configured for unattended installation is deployed through the Channel, the Prism client in the user session will run the task. However, if the task is configured for unattended installation, both the unattended and attended Prism clients will run it.
Example: if you have 4 users logged in via terminal sessions, you will have 5 Prism clients showing in Task Manager (one for the unattended session). All 4 clients will process a Package task. The unattended client will also process the Package task if the "allow unattended" option is set. Script and command tasks will only be run by the first client that polls, unless the "run for every user who logs on" is set.
Some customers have chosen to delete the registry value that launches the Prism client in each user session because they don’t want multiple instances of the Prism client to run. The registry value is HKLM\Software\Microsoft\Windows\Current Version\Run; Prism Deploy Client = “c:\Program Files\Prism Deploy\Client\ptclient.exe” /subscriber. If this registry value is deleted, then all tasks deployed through the Channel need to be configured to “allow unattended installation”. In addition, the local system account needs to be given network rights to the location of Package, script or command tasks. This is done by setting up a NullSessionShare.
Execute Mode vs. Install Mode
A Citrix/Terminal server operates in Execute Mode the majority of time. Install Mode is used when installing an application on a Citrix/Terminal server. The server automatically goes into Install Mode when an administrator uses Add/Remove Programs to install an application. The server can also be put into Install Mode via a command (see example below).
Customers have asked whether Prism Packages automatically switch the server to Install Mode during Package installation. No, but that isn’t necessary as long as the Package was built properly. The most important thing to know about building Packages for deployment to Citrix/Terminal servers is that they must be built on Citrix/Terminal server in Install Mode. This sets up the correct user “shadow” registry entries in the Package so that the server does not need to be switched to Install Mode when the Package task runs.
If you are pushing out a command task that runs a native install of an application (i.e., not a Package), you must manually set the server to “Install Mode” prior to launching the command. This can be accomplished via a Prism Script (.pts). The command line is “Change User /Install” and “Change User /Execute”. Here is an example of the correct syntax:
/Run %comspec% /c “Change User /Install”
/Run %comspec% /c “Change User /Execute”
When an application is installed natively in Install Mode, the Citrix/Terminal server will make sure that all users who connect get the user-specific settings necessary to run the application.
*You must have Prism Deploy Server Licenses if you wish to subscribe Citrix or Terminal servers to a Prism Deploy Channel.