Across the Citrix platform, Workspace Control, session roaming and reconnections are key functions to enabling the mobile workstyles that Citrix has pioneered.
But what about those scenarios when you don’t want a XenApp or XenDesktop session to roam?
There are plenty of scenarios in which it makes sense to effectively ‘tie’ a session to a particular endpoint and keep it there, regardless of what the end user might be doing. Shared, kiosk type workstations are one example. Clinicians working in a hospital lab environment, multitasking across multiple endpoints with multiple sessions open at the same time is another.
As Citrix XenApp, Receiver and the corresponding infrastructure have evolved over time, the settings required for this non-roaming scenario have migrated and, to some extent, proliferated.
This article provides the settings required to effectively disable Workspace Control and session roaming entirely for a XenApp environment or specific use case. Doing so involves a combination of specific settings at the following levels of a XenApp deployment:
- Microsoft RDS
- XenApp
- StoreFront
- Receiver (optional)
Please reference Citrix Docs for the latest information. And I look forward to your feedback in the comments section. I’ve researched and confirmed this information to the best of my ability, but there is always more to learn from the field!
Here are the version combinations that I’ll address in this article, along with the expected results of the settings below.
- XA 6.5 + StoreFront 2.6 and above: Works as expected
- XA 7.6 + StoreFront 2.6 and above: Experimental, but should work outside of Connection Leasing scenarios
- XA 7.7 and up + StoreFront 2.6 and above: Works as expected
- Receiver for Windows settings: Optional, as server-side settings will override Receiver side settings
XenApp 6.5 with StoreFront 2.6 / 3.0.1 / 3.5
Microsoft RDS on Server 2008 R2
In MS GPOs or individual RDS server configuration, on a Windows 2008 R2 XenApp server, under Remote Desktop Services > Remote Desktop Session Host Configuration, the “Restrict each user to a single session” policy must be UNCHECKED or not enabled.
XenApp 6.5
In the XenApp 6.5 AppCenter console, confirm that the “Allow only one instance of application for each user” is unchecked for each published resource in question.
For more information, this is an excellent article—with screenshots—by Jason Samuel, one of Citrix CTPs.
StoreFront 2.6 or 3.0.1: Store Level
Open web.config under the Store Service (for example, /Citrix/Store) in a text editor. Locate the lines similar to:
<resourcesService id=”f01f7dc4-7f28-4bc1-b8fb-7c0db9570d20″
storeLockedDown=”false”
anonymousStore=”false” allowSessionReconnect=”true” />
Change the value of allowSessionReconnect to false to disable workspace control reconnect.
Additional info available here and here.
StoreFront 2.6 or 3.0.1: Receiver for Web (browser-based access)
Use a text editor to open the web.config file for the Receiver for Web site, which is typically located in the C:\inetpub\wwwroot\Citrix\storenameWeb\ directory, where storename is the name specified for the store when it was created.
Locate the following element in the file.
<workspaceControl enabled=”true” autoReconnectAtLogon=”true”
logoffAction=”disconnect” showReconnectButton=”false”
showDisconnectButton=”false” />
Change the value of the “enabled” attribute to false to disable workspace control for the site. Set the value of the “autoReconnectAtLogon” attribute to false to prevent automatic reconnection of users to any applications that they left running.
Please see additional information here.
StoreFront 3.5: Store Level
Use the StoreFront management console
- On the Windows Start screen or Apps screen, locate and click the Citrix StoreFront tile.
- Select the Stores node in the left pane of the Citrix StoreFront management console and, in the Actions pane, click Configure Store Settings.
- Select Advanced Settings and uncheck Allow session reconnect.
Please see additional info here.
StoreFront 3.5: Receiver for Web (browser-based access)
- On the Windows Start screen or Apps screen, locate and click the Citrix StoreFront tile.
- In the left pane, select Stores and in the Action pane, select Manage Receiver for Web Sites, and clickConfigure.
- Select Workspace Control.
- Uncheck “Enable workspace control”
Please see additional info here.
StoreFront and XenApp Services (PNAgent) URLs
For StoreFront 2.6, 3.0.1, and 3.5, the following bullet is listed under the User Access Options section of Citrix Docs –
- Workspace control is enabled by default for XenApp Services URLs and cannot be configured or disabled.
However, some enterprising people have notices that there seems to be Workspace Control related settings in the Config.aspx file, typically located under
C:\inetpub\wwwroot\Citrix\Store\Views\PnaConfig
The modification of these values is not supported and done at your own risk.
XenApp 7.6 FP3 with StoreFront 2.6 / 3.0.1 / 3.5
With the transition to the XenApp 7.x platform and the FMA architecture, many things have changed, including the control of session behavior.
Microsoft RDS on Server 2012 R2
The same Microsoft RDS setting is required on Windows Server 2012 R2, though the recommended configuration option is via GPO on this platform.
To enable the user to multiple sessions, you can use the configuration settings below:
Computer Configuration\ Administrative Templates\ Windows Components\ Remote Desktop Services\ Remote Desktop Session Host\ Connections
Restrict Remote Desktop Services users to a single Remote Desktop Services session >> Disabled
See this TechNet article for details and screenshots.
XenApp 7.6
On XenApp 7.6, there is an experimental SessionReconnection setting available via PowerShell. For published app sessions, use:
Set-BrokerAppEntitlementPolicyRule <Delivery Group Name> -SessionReconnection <Value>
Where <Value> should be “SameEndpointOnly” to disable session roaming.
The other possible values for this command are discussed here.
Unfortunately, this feature was not fully tested in time for the 7.6 release and, thus, remains experimental (read: unsupported). I have confirmed internally that the only known issue is that it doesn’t work properly with Connection Leasing and, during a database outage, the roaming behavior will revert back to the default of Always. Note that Connection Leasing is enabled by default in XenApp 7.6.
Also note that the “Allow only one instance …” application limit policy should very likely be disabled for any scenarios in which roaming is disabled.
StoreFront 2.6 / 3.0.1 / 3.5
The required configuration for StoreFront with XenApp 7.6 remains the same, so please see the section above.
XenApp 7.7 and above with StoreFront 2.6 / 3.0.1 / 3.5
For Microsoft RDS settings on Server 2012 R2 XenApp VDAs, please see the section above.
XenApp 7.7 and up
With XenApp 7.7 and above, the previously experimental Delivery Group value is now fully implemented and supported. This includes the optional configuration for Connection Leasing behavior.
To configure session roaming, use the following entitlement policy rule cmdlets with the “SessionReconnection” property. Optionally, you can also specify the “LeasingBehavior” property; see Connection leasing and session roaming below.
For application sessions:
Set-BrokerAppEntitlementPolicyRule <Delivery-Group-name> -SessionReconnection <value> -LeasingBehavior Allowed|Disallowed
Where <value> should be the following to disable session roaming:
- SameEndpointOnly. A user gets a unique session for each client device they use. This completely disables roaming. Users can reconnect only to the same device that was previously used in the session.
Please see this Citrix Docs section for more information, including details on the Connection Leasing behavior.
Also note that the “Allow only one instance …” application limit policy should very likely be disabled for any scenarios in which roaming is disabled.
StoreFront 2.6 / 3.0.1 / 3.5:
The required configuration for StoreFront with XenApp 7.6 remains the same, so please see the section above.
Receiver for Windows 4.1 and up (optional)
Workspace control settings can also be applied to Windows endpoints with Receiver 4.1 and up via the registry:
- REG_SZ WSCReconnectMode controls when reconnects are attempted.
- Other registry values include: WSCSupported, WSCReconnectAll, WSCReconnectModeUser
To disable Workspace Control for an endpoint, WSCReconnectMode should be set to “0”.