Recently, I worked on a project where the workload needed to shift from using a Citrix Published Desktop to a physical laptop, with locally installed applications. As always, there are applications that, for various reasons, cannot be moved from the Citrix Published Desktop to the physical laptop. For these applications, we chose to offer them as Citrix Published Applications. Although this transition went well technically, end users reported that working with published applications was not considered very pleasant.
Scenario: The published apps were offered from a Citrix Virtual Apps en Desktops Farm, utilizing Ivanti Workspace Control. Ivanti Workspace Control is a workspace management solution provided by Ivanti, a company specializing in IT management software. It offers features for managing user workspaces across various devices and environments, including physical desktops, virtual desktop infrastructure (VDI), and application virtualization platforms. Unfortunately, Ivanti has announced that Ivanti Workspace Control will reach end of life on December 31, 2026, but at the moment, we are using it to our full satisfaction. When starting a Citrix Published Application, it takes some time due to, among other factors, the loading of the Windows profile and Ivanti Workspace Control settings before the application actually starts. When you subsequently start a second published application, it loads faster since the entire profile and UEM (User Environment Management) don’t need to be processed again. When you close the last Citrix Published Application, it also logs out the entire user session, resulting in the next Citrix Published application taking some time again, as your entire Citrix sessions needs to be loaded
Luckily, Citrix has a great solution for this called Application Lingering, an option where the Citrix session persists after closing your published application. The significant advantage of this is that you don’t have to log in again if you subsequently start the same or another published application in the same silo, your Citrix session is still active.
For detailed information on how to activate the Session Linger feature, I would direct you to CTX130110 (https://support.citrix.com/article/CTX130110/how-to-configure-session-linger-feature-in-xenapp).
Because we’re using Ivanti Workspace Control, it’s not sufficient to only enable Citrix Application Lingering. With Ivanti Workspace Control, you publish the process pwrgate.exe followed by the application ID. When the application is closed, Ivanti Workspace Control will initiate a logoff, causing Citrix Application Lingering not to keep the session active. To prevent this, additional registry modifications need to be made. By setting LingerTerminateTimerInterval and/or LingerDisconnectTimerInterval within the Ivanti Workspace Control user session, the session will not be logged off, but rather, Ivanti Workspace Control will keep it active for the set duration.
Ivanti Workspace Control 2023 Administration Guide https://help.ivanti.com/res/help/en_US/IWC/2023/Help/Content/37795.htm
There are still some nuances to consider. According to the Ivanti Workspace Control documentation, it should be sufficient not to enable Application Lingering on the Citrix Delivery Group, but only to set the registry values LingerTerminateTimerInterval and/or LingerDisconnectTimerInterval within the user session. They mention the following:
Known Limitations
Lingering Citrix XenApp applications started by Workspace Control do not show the status lingering on the Citrix server. This is caused by the way Workspace Control starts Citrix published applications.
This occurs because from the Citrix perspective, it’s not truly an Application Lingering session but rather an active session with only some Ivanti Workspace Control processes running in the background.
It seems that despite setting the registrykey LingerTerminateTimerInterval within Ivanti Workspace Control, the Citrix session was still being terminated immediately upon closing the application, which should not have happened. After some investigation, it was found that after closing the application, the Citrix session briefly displayed the application state as “Application not running.”
It appears that Citrix incorrectly detected that no applications were active in the session and initiated a logoff. This occurred despite the primary Ivanti Workspace Control process, pfwsmgr.exe, still being active in the session and configured to delay the logoff for 60 minutes. This discrepancy suggests a potential issue with the communication between Citrix and Ivanti Workspace Control or with how Citrix interprets the session’s activity status.
Upon further investigation, we discovered the registrykey HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI\LogoffCheckSysModules, which was set to pfwsmgr.exe. We had previously added this entry to ensure that sessions from published applications gracefully log off when closing an application and are not retained by the running pfwsmgr.exe process.
For more information, please refer to CTX891671: Graceful Logoff from a Published Application Renders the Session in Active State
So, in summary, the use of Ivanti Workspace Control registrykeys LingerTerminateTimerInterval and/or LingerDisconnectTimerInterval can depend on the LogoffCheckSysModules registrykey. In our case, we have configured it as follows:
- HKEY_CURRENT_USER\Software\RES\Workspace Manager\LingerTerminateTimerInterval set to 59 minutes;
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI\LogoffCheckSysModules containing pfwsmgr.exe;
- Application Lingering set to 60 minutes on the Citrix Delivery Group;
Upon closing a published application, the registry key LingerTerminateTimerInterval ensures that Ivanti Workspace Control does not initiate a logoff. Since we have added pfwsmgr.exe to LogoffCheckSysModules, Citrix detects it as a closed session but does not immediately initiate a logoff, as we have set Application Lingering to be active on the relevant Delivery Group. As a result, in Citrix, you will now see a “Lingering” session that gracefully logs off after 59 minutes from Ivanti Workspace Control.