Navigation
- Change Log
- VDA Virtual Machine Hardware
- Windows Configuration
- Install – Virtual Delivery Agent 1912 LTSR CU9
- Workspace app:
- Remote Desktop Licensing Configuration
- Reduce C: Drive Permissions
- Configure Pagefile for Citrix Provisioning
- Direct Access Users Group – allow non-administrators to RDP to the VDA
- Enable Windows Profiles v3/v4 – Windows 2012 R2 only
- Registry Settings – EDT MTU, black screen, faster login, published Explorer, Screen Saver, Smart Card, HTML5 Clipboard, HTML5 Upload Folder, 4K Monitors, COM Ports
- Restore Legacy Client Drive Mapping
- Print Driver for Mac and Linux Clients
- HTML5 Workspace app – SSL for VDA
- Anonymous Accounts
- Antivirus
- Optimize Performance
- Applications
- Seal and Shut Down
- Uninstall VDA
💡 = Recently Updated
Change Log
- 2023 Sept 11 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 8
- 2023 Apr 13 – added link to Updated VDA Install / Upgrade / RDS Install / Desktop / Server / App Install Script by Kris Davis
- 2023 Mar 15 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 7
- 2022 Nov 1 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 6
- 2022 Mar 30 – updated Workspace app versions including the new 2203 LTSR version
- 2022 Mar 11 – Some Teams offload/optimization features require VDA 2112 and newer with Workspace app 2112 and newer. Seach Citrix Docs for 2112.
- 2022 Mar 9 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 5
- 2022 Feb 16 – Hotfix 1 for multi-session VDA – ghost sessions
- 2021 Dec 22 – Workspace app – upgrade to Workspace app 1912 CU6 LTSR
- 2021 Nov 3 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 4
- 2021 Aug 11 – Workspace app – upgrade to Workspace app 1912 CU5 LTSR
- 2021 July 28 – Profile Management 19.12.3000 Hotfix 3 – fix for the security fix
- 2021 July 16 – Profile Management 19.12.3000 Hotfix 2 – fix for the security fix
- 2021 July 13 – Profile Management 19.12.3000 Hotfix 1 – security fix
- 2021 July 6 – Windows Defender– Disable Network protection and configure Citrix’s antivirus exclusions (source = Citrix CTX319676 Users sessions are getting disconnected – Connection Interrupted)
- 2021 July 6 – DelayedDesktopSwitchTimeout registry value (source = CTP James Rankin The ultimate guide to Windows logon time optimizations, part #6)
- 2021 May 29 – Apps – added list of special VDI installers
- 2021 May 13 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 3
- 2021 May 10 – Workspace app – upgrade to Workspace app 1912 CU4 LTSR
- 2021 Feb 2 – Print Driver for Mac/Linux clients – added info from CTX283355 Client Printing from Linux/MAC is not working on Windows Server 2016 and 2019
- 2020 Nov 19 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 2
- 2020 Nov 10 – 1912 CU1 Security Updates
- 2020 Oct 15 – Workspace app – upgrade to Workspace app 1912 CU2 LTSR
- 2020 July 15 – Workspace app – upgrade to Workspace app 1912 CU1 LTSR
- 2020 Jun 25 – Antivirus – added link to Configuring Microsoft Defender Antivirus for non-persistent VDI machines – Microsoft Blog
- 2020 May 7 – Updated VDA Install for VDA 1912 LTSR Cumulative Update 1
Hardware
Hypervisor Host Hardware
- G0-EUC Moore’s law of Windows 10 1903 – Newer versions of Windows 10 have lower density than older versions
- Citrix Blog Post Citrix Scalability — The Rule of 5 and 10: Simply take the number of physical cores in a hypervisor host, multiply it by 5 or 10, and the result will be your Single Server Scalability. Use 5 if you’re looking for the number of Virtual Desktop VMs you can host on a box, and use 10 if you’re looking for the number of Virtual Apps user sessions you can host on a box.
Virtual Machine Hardware
- Operating system version support: VDA 1912 LTSR Cumulative Update 8 supports Windows 10 64-bit (1607 and newer), Windows Server 2019, Windows Server 2016, and Windows Server 2012 R2.
- Windows 11 is not supported in CVAD 1912, but it is supported in CVAD 2109 and newer.
- For older operating systems (e.g., Windows 7 or Windows Server 2008 R2), install VDA 7.15 with the latest Cumulative Update. VDA 7.15 will work with newer Delivery Controllers (e.g., Delivery Controller 1909 and 1903).
- Microsoft TechNet Blog – Say No to Windows 10 Long Term Servicing Channel (LTSC)
- No Edge
- From January 2020, Microsoft Office 365 will not be supported on LTSC
- Non-security operating system fixes and enhancements may not get back-ported to LTSC
- CTX224843 Windows 10 compatibility with Citrix Virtual Desktops (XenDesktop)
- Hypervisor Support – CTX131239 Supported Hypervisors for Virtual Desktops (XenDesktop) and Provisioning Services
- Firewall – the UDP-based EDT protocol is enabled by default. Make sure the UDP ports are open for ICA/HDX:
- UDP 1494
- UDP 2598
- UDP 443 – from Internet to Citrix Gateway.
- UDP 443 can also be used by internal ICA connections if VDA SSL is configured.
- For EDT through Citrix Gateway, make sure your Citrix ADC firmware is up to date, preferably 12.1 or newer. Then enable DTLS on the Gateway Virtual Server.
- VDA virtual machine sizing:
- For Windows 10 virtual desktops, give the virtual machine: 2+ vCPU and 4+ GB of RAM
- For Windows 2016 RDSH, give the virtual machine 8 vCPU, and 24-48 GB of RAM
- See Daniel Feller Sizing Windows 2016, Windows 2012 And Windows 10 Virtual Machines
- If using RAM caching (MCSIO or PvS), add more RAM for the cache
- Remove the floppy drive
- Remove any serial or LPT ports
- If vSphere:
- To reduce disk space, reserve memory. Memory reservations reduce or eliminate the virtual machine .vswp file.
- The NIC should be VMXNET3.
- For vGPU, if vSphere 6.7 Update 1 or newer, set vgpu.hotmigrate.enabled Advanced vCenter Server Setting to true. (source = William Lam How to enable vGPU vMotion in vSphere 6.7 Update 1)
- For User Personalization Layer (UPL), Secure Boot is not supported.
- When creating a new VM, on the Customize Hardware page, switch to the tab named VM Options.
- Expand Boot Options and deselect Secure Boot. You can also disable Secure Boot after the machine is created. Or you can switch the Firmware to BIOS instead of EFI but you can only do that while creating the machine.
- For Citrix App Layering, switch to BIOS instead of UEFI:
- When creating a new VM, on the Customize Hardware page, switch to the tab named VM Options.
- Expand Boot Options and change Firmware to BIOS. Note: you can only do this when creating a VM. Changing an existing VM will prevent it form booting.
- If this VDA will boot from Citrix Provisioning:
- For vSphere, the NIC Adapter Type must be VMXNET3.
- For vSphere, configure the CD/DVD Drive to boot from IDE instead of SATA. SATA won’t work with PVS.
- Make sure you remove the SATA Controller after you change the CD/DVD Drive to be IDE.
- For vSphere, the NIC Adapter Type must be VMXNET3.
- Install the latest version of hypervisor drivers (e.g. VMware Tools).
- The vSphere Activity Monitoring Feature with NSX Guest Introspection feature uses a TDI driver (vnetflt.sys), which might cause a “Connection Interrupted” message when users log off of Citrix. See CTX221206 “Connection Interrupted” error message displayed while logging off ICA session.
If vSphere, disable NIC Hotplug
- Users could use the systray icon to Eject the Ethernet Controller. Obviously this is bad.
- To disable this functionality, power off the virtual machine.
- Once powered off, right-click the virtual machine, and click Edit Settings.
- Switch to the tab named VM Options.
- Expand Advanced and then click Edit Configuration.
- Click the button labelled Add Configuration Params.
- For the Name, enter devices.hotplug.
- For the Value, enter false. Then click OK.
- The VM can then be powered on.
Windows Preparation
- Computer Group Policy – Make sure the Master VM is in the same OU as the Linked Clones so the Master VM will get the computer-level GPO settings in its registry. Run gpupdate on the master after moving the VM to the correct OU. When Clones are created from the Master, the computer-level GPO settings will already be applied, thus eliminating timing issues.
- If Server OS, disable IE Enhanced Security Configuration in Server Manager > Local Server.
- Optionally, go to Action Center (Windows 2012 R2) or Control Panel > Security and Maintenance (Windows 10/2016/2910) to disable User Account Control, and enable SmartScreen.
- In Windows 10 1703 and newer, search the Settings app for Change User Account Control settings.
- SmartScreen is configured in Windows Defender Security Center > App & browser control.
- In Windows 10 1703 and newer, search the Settings app for Change User Account Control settings.
- Run Windows Update. Do not skip this step. Many VDA installation problems are fixed by simply updating Windows.
- Defer Feature Updates – For Windows 10, since Citrix VDA does not immediately support new Windows 10 versions, configure Windows Update to defer feature updates.
- Defer Feature Updates – For Windows 10, since Citrix VDA does not immediately support new Windows 10 versions, configure Windows Update to defer feature updates.
- Add your Citrix Administrators group to the local Administrators group on the VDA. Computer Management.
- The Remote Desktop Services “Prompt for Password” policy prevents Single Sign-on to the Virtual Delivery Agent. Check registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
. If fPromptForPassword = 1 then you need to fix group policy. The following GPO setting will prevent Single Sign-on from working.Computer Configuration | Policies | Administrative Templates | Windows Components | Remote Desktop Services | Remote Desktop Session Host | Security | Always prompt for password upon connectionOr set the registry valueHKEY_LOCAL_MACHINE\SOFTWARE\Citrix\
Portica\AutoLogon (DWORD) = 0x1. This registry value only applies to Single-session OS (aka Desktop OS), not Multi-session OS (aka Server OS). (source = comments) - For Remote Assistance in Citrix Director, configure the GPO setting Computer Configuration | Policies | Administrative Templates | System | Remote Assistance | Offer Remote Assistance. See Jason Samuel – How to setup Citrix Director Shadowing with Remote Assistance using Group Policy for more details.
Install Virtual Delivery Agent (VDA) 1912 Cumulative Update 8
Mixed versions – You can upgrade the VDAs before you upgrade the Delivery Controllers resulting in VDAs being newer than the Delivery Controllers. You can upgrade the Delivery Controllers before you upgrade the VDAs. In other words, you can mix and match VDA and Delivery Controller versions. However, for LTSR compliance/support, upgrade all of them to the same version as soon as you can.
CLI Install:
Command Line Install Options are detailed at Install using the command line at Citrix Docs.
The Citrix Telemetry Service seems to cause problems. You can use the Command Line Installer to exclude Telemetry Service as detailed at VDA upgrade cmdlet at Citrix Discussions.
XenDesktopVDASetup.exe /quiet /noreboot /masterimage /Enable_HDX_PORTS /Enable_REAL_TIME_TRANSPORT /optimize /controllers "xdc01.corp.local xdc02.corp.local" /Exclude "Citrix Telemetry Service"
CTX234824 Citrix VDA Commandline Helper Tool: a GUI to configure the VDA installation options.
Scripted Upgrade:
To automate the upgrade of VDA software on persistent machines, see Dennis Parker at How to automate unattended VDA upgrade at Citrix Discussions for a sample script. Also see Updated VDA Install / Upgrade / RDS Install / Desktop / Server / App Install Script by Kris Davis.
GUI Install:
- Virtual Channel Allow List is not enabled by default in VDA 1912 but is enabled by default in newer versions of the VDA. This blocks Zoom, Skype, WebEx, etc. See Citrix Docs for more details.
- Run AutoSelect.exe from the 1912 CU9 ISO.
- Alternatively, you can download the standalone VDA package and run that instead. Go the main Citrix Virtual Apps and Desktops 7 1912 Cumulative Update 9 download page. Expand the section labelled Components that are on the product ISO but also packaged separately. There is also a VDA installer called Single-session OS Core Services that is designed for Remote PC deployments.
- Alternatively, you can download the standalone VDA package and run that instead. Go the main Citrix Virtual Apps and Desktops 7 1912 Cumulative Update 9 download page. Expand the section labelled Components that are on the product ISO but also packaged separately. There is also a VDA installer called Single-session OS Core Services that is designed for Remote PC deployments.
- Click Start next to either Virtual Apps or Virtual Apps and Desktops. The only difference is the product name displayed in the installation wizard.
- On the top right, click Virtual Delivery Agent for Windows Multi-session OS (aka RDSH, aka Server OS), or Windows Single-session OS (aka virtual desktop, aka Desktop OS), depending on which type of VDA you are building.
- In the Environment page, select Create a master MCS Image or Create a master image using Citrix Provisioning, and click Next.
- In the Core Components page, if you don’t need Citrix Workspace App (formerly known as Receiver) installed on your VDA, then uncheck the box. Workspace app is usually only needed for double-hop ICA connections (connect to first VDA, and then from there, connect to second VDA). Click Next.
- In the Additional Components page:
- Single-session OS (not Multi-session OS) has a new option for Citrix User Personalization Layer (UPL). This component comes from Citrix App Layering but does not need any of the App Layering infrastructure.
- Do not enable User Personalization Layer if you are also using Citrix App Layering.
- Warning: A Citrix Policy setting activates Citrix User Personalization Layer by setting the UNC path to where the User Personalization Layers should be stored. The Citrix Policy setting should only be deployed to non-persistent machines. If you deploy the Citrix Policy Setting to your Master Image, then your Master Image will be hosed and you must rebuild it from scratch.
- UPL requires Secure Boot to be disabled. You can do that by editing the VM, switch to the VM Options tab, and expand Boot Options.
- There’s an option for Citrix Files for Windows, which installs an agent that can display files from Citrix Content Collaboration (aka ShareFile). See CTX228273 Install and Use Citrix Files for Windows.
- Single-session OS (not Multi-session OS) has a new option for Citrix User Personalization Layer (UPL). This component comes from Citrix App Layering but does not need any of the App Layering infrastructure.
- Click Next.
- In the Delivery Controller page, select Do it manually. Enter the FQDN of each Delivery Controller. Click Test connection. And then make sure you click Add. Click Next when done.
- In the Features page, only the top box is checked by default. If you want to use the other features, check the boxes.
- There’s an option for MCS IO, which is the driver for MCS Memory Read Caching (aka Storage Optimization). In VDA 1912, the MCS IO driver is now the exact same driver as the driver used in Citrix Provisioning. If you want the MCSIO feature, then VDA 1912 and newer are strongly recommended since they don’t have the same performance problems as 1811 and older (including 7.15). If you have fast storage (e.g. All-Flash Array), then you usually don’t need the MCS IO feature.
- Then click Next.
- In the Firewall page, click Next.
- In the Summary page, click Install.
- The machine might need to reboot a couple times.
- After the reboot, and after logging in again, you might see a Locate ‘Citrix Virtual Apps and Desktops 7 LTSR CU9’ installation media window. Don’t click anything yet.
- Go to the Citrix_Virtual_Apps_and_Desktops_7_1912_8000.iso file and mount it.
- Go back to the Locate ‘Citrix Virtual Apps and Desktops 7 LTSR CU9’ installation media window.
- On the left, expand This PC and click the DVD Drive.
- Click Select Folder.
- Installation will resume. Repeat these instructions after each reboot.
- After the reboot, and after logging in again, you might see a Locate ‘Citrix Virtual Apps and Desktops 7 LTSR CU9’ installation media window. Don’t click anything yet.
- Note: NT SERVICE\CitrixTelemetryService needs permission to login as a service.
- In the Diagnostics page, you can optionally check the box next to Collect diagnostic information, click Connect, enter your Citrix account credentials, and then click Next.
- In the Finish page, click Finish to restart the machine again.
- From CTX225819 When Launching an Application Published from Windows Server 2016, a Black Screen Appears for Several Seconds Before Application is Visible
- HKLM\SOFTWARE\Citrix\Citrix Virtual Desktop Agent\DisableLogonUISuppression (DWORD) should be set to 0.
Microsoft FSLogix
If you need to roam the user’s Outlook .OST file (Outlook Cached Mode), Outlook Search Index, OneDrive cache, OneNote data, SharePoint data, Skype data, and/or Teams data, then download, install, and configure Microsoft FSLogix. FSLogix has more Office roaming features than Citrix Profile Management. A common architecture is to enable FSLogix Office Container for the Office cache files and use Citrix Profile Management for all other roaming profile files and registry keys.
Microsoft FSLogix is free for all Microsoft RDS CALs, Microsoft Virtual Desktop Access per-user CALs, and all Microsoft Enterprise E3/E5 per-user licenses. Notice that per-device licenses are excluded. See Licensing Requirements at Microsoft Docs.
Do the following to install Microsoft FSLogix on the VDA machine:
- Go to https://docs.microsoft.com/en-us/fslogix/install-ht and click the download link.
- Extract the downloaded .zip file.
- In the FSLogix \x64\Release folder, run FSLogixAppsSetup.exe.
- Check the box next to I agree to the license terms and conditions and click Install.
- In the Setup Successful page, click Restart.
- Make sure the Windows Search service is set to Automatic and Running.
- If Office is already installed, then repair the Office installation after installing and starting the Windows Search Service.
FSLogix is configured through Group Policy or by editing registry values on each FSLogix Agent machine.
Citrix Desktop Service
To prevent Citrix Desktop Service (BrokerAgent) from starting and registering with the Delivery Controllers before the boot process is complete, see Jeremy Saunders Controlling the Starting of the Citrix Desktop Service (BrokerAgent).
Customer Experience Improvement Program (CEIP)
Customer Experience Improvement Program (CEIP) is enabled by default. To disable it, create the registry value HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Telemetry\CEIP\Enabled
(DWORD), and set it to 0
(zero). Also see CEIP at Citrix Insight Services at Citrix Docs.
See https://www.carlstalhood.com/delivery-controller-cr-and-licensing/#ceip for additional places where CEIP is enabled.
Connection Quality Indicator
The Connection Quality Indicator tells the user the quality of the connection. Position of the indicator is configurable by the user. Thresholds are configurable through group policy.
Download it from CTX220774 Connection Quality Indicator and install it. The article is very detailed.
Group Policy templates are located at C:\Program Files (x86)\Citrix\Connection Quality Indicator\Configuration. Copy the files and folder to <Sysvol>\Policies\PolicyDefinitions, or C:\Windows\PolicyDefinitions.
Find the Group Policy settings under Computer Config | Policies | Administrative Templates | Citrix Components | Virtual Desktop Agent | CQI
Version 1.2 adds the GPO settings to the user half of a GPO, which lets you disable CQI for some users and enable it for others.
Notification display settings lets you customize the user notifications, or disable them.
Connection Threshold Settings lets you set the notification thresholds.
Adaptive Transport
Adaptive Transport is a HDX/ICA protocol feature that tries to use UDP ports (EDT protocol) if they are open, and falls back to TCP ICA if UDP connection is not successful. On higher latency connections, EDT (UDP) tends to perform better than traditional TCP ICA.
The Citrix Policy setting HDX Adaptive Transport defaults to Preferred, which means Adaptive Transport is enabled by default.
The newer Citrix EDT protocol use UDP Ports 1494/2598 for HDX connections to the VDA. The UDP ports should already be open in the VDA’s Windows Firewall. In other words, HDX/ICA uses both TCP and UDP ports.
For EDT (and Adaptive Transport) through Citrix Gateway, make sure your Citrix ADC firmware is up to date, preferably 12.1 or newer. Then make sure DTLS is enabled on the Gateway Virtual Server. DTLS is the UDP version of SSL/TLS.
Slow Logons
Citrix Discussions Xenapp 7.9: Wait for local session manager: “I have a Xenapp 7.9 environment on Windows 2012 R2. When logging in through Citrix I got message “Wait for local session manager” for 20-30 seconds. When logging in to the server with RDS, I do not have to wait for this.”
“Add the following 2 registry keys to your VDA server – then try connecting to it using ICA to see if the issue still occurs:
Add reg keys in “HKLM\SOFTWARE\Citrix\GroupPolicy”
Dword: “CacheGpoExpireInHours” – Value = 5-24 (# of Hours) ***start with value of 5***
Dword: “GpoCacheEnabled” – Value = 1
Restart the machine after adding these registry keys and attempt an ICA connection (at least twice) to see if that helps the Login delay.”
Marvin Neys at XenApp slow logon times, user get black screen for 20 seconds at Citrix Discussions says that deleting HKCU\Software\Microsoft\Windows\CurrentVersion\UFH\SHC at logoff reduces logon times from 40 seconds to 6 seconds.
Remove-Item HKCU:\Software\Microsoft\Windows\CurrentVersion\UFH\SHC
For additional logon delay troubleshooting, see Alexander Ollischer XenApp/XenDesktop – “Please Wait For Local Session Manager” message when logging into RDS. He found some Windows Updates that caused a logon delay.
VDA recalculates WMI filters on every reconnect. CTX212610 Session Reconnect 30 sec Delay – DisableGPCalculation – WMI Filters indicates that recalculation can be disabled by setting HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Reconnect\DisableGPCalculation (DWORD) to 1. Note: this registry value might stop Citrix Policies from being re-evaluated when users reconnect (source = Citrix Discussions).
Verify that VDA registered with a Controller
- If you restart the Virtual Delivery Agent machine, or restart the Citrix Desktop Service…
- In Windows Logs > Application log, you should see an event 1012 from Citrix Desktop Service saying that it successfully registered with a controller.
- If you don’t see successful registration, then you’ll need to fix the ListOfDDCs registry key.
- See VDA registration with Controllers at Citrix Docs.
- See The Most Common VDA Registration Issues & Troubleshooting Steps at Citrix Blogs.
- You can also run Citrix’s Health Assistant on the VDA.
- See CTX220772 Technical Primer: VDA Registration for a very detailed explanation of the VDA Registration process.
Citrix Workspace app
If you want to run Workspace app on the VDA machine, then upgrade it to your desired version, either a Current Release version, or a Long Term Service Release (LTSR).
- Workspace app LTSR does not support Browser Content Redirection (BCR). Current Releases do support Browser Content Redirection (BCR).
Download and install Workspace app:
- Download Workspace app 2303 (Current Release), or Workspace app 2203.1 LTSR Cumulative Update 3.
- On the VDA, as administrator, run the downloaded CitrixWorkspaceApp.exe.
- In the Welcome to Citrix Workspace page, click Start.
- In the License Agreement page, check the box next to I accept the license agreement, and click Next.
- In the Enable Single Sign-on page, check the box next to Enable single sign-on, and click Install.
- In the Installation successful page, click Finish.
- Click Yes when asked to restart now.
Citrix File Access 2.0.4 for Workspace app for Chrome
- If you support Workspace app for Chrome (Chromebook) and want published applicatons to open files on Google Drive, install Citrix File Access on the VDAs. Get it from the Citrix File Access for Chrome.
- Go to the extracted Citrix_File_Access_2.0.4, and run FileAccess.msi.
- In the Please read the File Access License Agreement page, check the box next to I accept the terms, and click Install.
- In the Completed the File Access Setup Wizard page, click Finish.
- File Access is listed in Apps & Features or Programs and Features as version 2.0.4.34.
- File Access has a default list of supported file extensions. The list can be expanded by editing the registry on the VDA. See CTX219983 Receiver for Chrome Error: Invalid command line arguments: Unable to open the file as it has an unsupported extension.
- To open a file from Google Drive, right-click and and open the file using Citrix Workspace app.
Remote Desktop Licensing Configuration
On 2012 R2 and newer RDSH, the only way to configure Remote Desktop Licensing is using group policy (local or domain). This procedure is not needed on virtual desktops.
- For local group policy, run gpedit.msc. Alternatively, you can configure this in a domain GPO.
- Go to Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Licensing.
- Double-click Use the specified Remote Desktop license servers. Change it to Enabled, and enter the names of the RDS Licensing Servers (typically installed on Delivery Controllers). Click OK.
- Double-click Set the Remote Desktop licensing mode. Change it to Enabled and select Per User. Click OK.
- Optionally, you can install the Remote Desktop Licensing Diagnoser Tool. In the Server Manager > Add Roles and Features Wizard, on the Features page, expand Remote Server Administration Tools, expand Role Administration Tools, expand Remote Desktop Services Tools, and select Remote Desktop Licensing Diagnoser Tool. Then Finish the wizard.
- If it won’t install from Server Manager, you can install it from PowerShell by running
Install-WindowsFeature rsat-rds-licensing-diagnosis-ui
.
- In Server Manager, open the Tools menu, expand Remote Desktop Services (or Terminal Services), and click Remote Desktop Licensing Diagnoser.
- The Diagnoser should find the license server, and indicate the licensing mode. If you’re configured for Per User licenses, then it’s OK if there are no licenses installed on the Remote Desktop License Server.
Several people in Citrix Discussions reported the following issue: If you see a message about RD Licensing Grace Period has expired even though RD Licensing is properly configured, see Eric Verdumen No remote Desktop Licence Server availible on RD Session Host server 2012. The solution was to delete the REG_BINARY in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod only leaving the default. You must take ownership and give admin users full control to be able to delete this value.
C: Drive Permissions
This section is more important for shared VDAs like RDSH (Windows Server 2012 R2, Windows Server 2016, and Windows Server 2019).
The default permissions allow users to store files on the C: drive in places other than their profile.
- Open the Properties dialog box for C:.
- On the Security tab, click Advanced.
- If UAC is enabled, click Change permissions.
- Highlight the line containing Users and Create Folders, and click Remove.
- Highlight the line containing Users and Create files (or Special), and click Remove. Click OK.
- Click Yes to confirm the permissions change.
- If you see any of these Error Applying Security windows, click Continue. This window should appear multiple times.
- Click OK to close the C: drive properties.
Pagefile
If this image will be converted to a Citrix Provisioning vDisk, then you must ensure the pagefile is smaller than the cache disk. For example, if you allocate 20 GB of RAM to your Remote Desktop Session Host, and if the cache disk is only 15 GB, then Windows will have a default pagefile size of 20 GB, and Citrix Provisioning will be unable to move it to the cache disk. This causes Citrix Provisioning to cache to server instead of caching to your local cache disk (or RAM).
- Open System.
- In Windows Server 2012 R2 and Windows Server 2016, you can right-click the Start button, and click System.
- In Windows 10 1703 or newer (or Windows Server 2019), search the Start Menu for advanced system settings.
- Another option is to open File Explorer, right-click This PC, and click Properties. This works in Windows 10 1703 and newer.
- In Windows Server 2012 R2 and Windows Server 2016, you can right-click the Start button, and click System.
- Click Advanced system settings.
- On the Advanced tab, click the top Settings button.
- On the Advanced tab, click Change.
- Uncheck the box next to Automatically manage paging file size for all drives. Then either turn off the pagefile, or set the pagefile to be smaller than the cache disk. Don’t leave it set to System managed size. Click OK several times.
Direct Access Users
When Citrix Virtual Delivery Agent (VDA) is installed on a machine, non-administrators can no longer RDP to the machine. A new local group called Direct Access Users is created on each Virtual Delivery Agent. Add your non-administrator RDP users to this local group so they can RDP directly to the machine.
From CTX228128 What is the HKLM\Software\Citrix\PortICA\DirectAccessUsers registry function: The HKLM\Software\Citrix\PortICA\DirectAccessUsers registry key determines which Local group the VDA references to determine if a user should be allowed Unbrokered RDP access. Members of the Local Administrators group will always be granted access. If the Registry Key does not exist, or gets deleted, VDA will always allow the Unbrokered RDP Connection. The Registry key and local group are created as part of the VDA installation process.
Windows Profiles v3/v4/v5/v6
Roaming Profiles are compatible only between the following client and server operating system pairs. The profile version is also listed.
- v6 = Windows 10 (1607 through 1903), Windows Server 2016, and Windows Server 2019
- v5 = Windows 10 (1511 and older)
- v4 = Windows 8.1 and Windows Server 2012 R2
- v3 = Windows 8 and Windows Server 2012
- v2 = Windows 7 and Windows Server 2008 R2
- v2 = Windows Vista and Windows Server 2008
For Windows 2012 R2, install Microsoft hotfix 2890783, and set the UseProfilePathExtensionVersion registry value to 1.
CTX230343 Reset Profile Options Is Greyed Out In Citrix Director states that the UseProfilePathExtensionVersion registry value is required on Windows 2012 R2 to enable Director users to reset profiles.
Registry
EDT MTU Discovery
EDT MTU Discovery prevents EDT packet fragmentation that might result in performance degradation or failure to establish a session. This feature requires the following:
- Citrix Workspace app 1911 for Windows or newer
- Citrix ADC 13.0.52.24 or newer
- Citrix ADC 12.1.56.22 or newer
Set the following registry value on the VDA:
- Key =
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd
- Value (DWORD) =
MtuDiscovery
= 1
- Value (DWORD) =
Faster Login
From CTP James Rankin The ultimate guide to Windows logon time optimizations, part #6: DelayedDesktopSwitchTimeout tells the logon process to wait for a shorter time before switching from session 0 to the actual session in use.
- Key =
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
- Value (DWORD) =
DelayedDesktopSwitchTimeout
= 1
- Value (DWORD) =
Black Screen when launching Published Apps on Windows Server 2016
From CTX225819 When Launching an Application Published from Windows Server 2016, a Black Screen Appears for Several Seconds Before Application is Visible: Citrix and Microsoft have worked together together to deliver code fixes for both Windows Server 2016 and Citrix Virtual Apps. Microsoft is targeting their KB4034661 patch for the third week of August 2017. This fix requires a registry edit to enable.
- Key =
HKLM\SOFTWARE\Citrix\Citrix Virtual Desktop Agent
- Value (DWORD) =
DisableLogonUISuppression
= 0
- Value (DWORD) =
Published Explorer
From Citrix CTX128009 Explorer.exe Fails to Launch: When publishing the seamless explorer.exe application, the session initially begins to connect as expected. After the loading, the dialog box disappears, and the Explorer application fails to appear. On the VDA, use the following registry change to set the length of time a client session waits before disconnecting the session:
- Key =
HKLM\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI
- Value (DWORD) =
LogoffCheckerStartupDelayInSeconds
= 10 (Hexadecimal)
- Value (DWORD) =
Screen Saver
From Citrix CTX205214 Screensaver Not Working in XenDesktop: By default, Screen Saver doesn’t work on Desktop OS. To enable it, on the VDA, configure the following registry value:
- Key =
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Graphics
- Value (DWORD) =
SetDisplayRequiredMode
= 0
- Value (DWORD) =
Smart Cards
From CTX231942 Windows 10 April 2018 Update (v1803) – Citrix Known Issues – Smart Card Service (SCardSvr) will run only if a Smart Card reader is connected. As ICA sessions redirect the Smart Card, it finds the service not to be running and fails.
- Key =
HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Cryptography\Calais
- Value (DWORD) =
AllowServiceAccessWithNoReaders
= 1
- Value (DWORD) =
Logon Disclaimer Window Size
From XenApp 7.8 – Session Launch Security/Warning Login Banner at Citrix Discussions: If your logon disclaimer window has scroll bars, set the following registry values:
- Key =
HKEY_LOCAL_MACHINE\Software\Wow6432node\Citrix\CtxHook\AppInit_DLLS\Multiple Monitor Hook
- Value (DWORD) =
LogonUIWidth
= 300 - Value (DWORD) =
LogonUIHeight
= 200
- Value (DWORD) =
Login Timeout
From Citrix CTX203760 VDI Session Launches Then Disappears: VDA, by default, only allows 180 seconds to complete a logon operation. The timeout can be increased by setting the following:
- Key =
HKLM\SOFTWARE\Citrix\PortICA
- Value (DWORD) =
AutoLogonTimeout
= decimal 240 or higher (up to 3599).
- Value (DWORD) =
Also see Citrix Discussions Machines in “Registered” State, but VM closes after “Welcome” screen.
From Citrix CTX138404 Application Connection Starts but Disappears after Timeout: after loading the application, the dialog box disappears and the application fails to appear.
- Key =
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI
- Value (DWORD) =
ApplicationLaunchWaitTimeoutMS
= decimal 60000
- Value (DWORD) =
Workspace app for HTML5/Chrome Enhanced Clipboard
From About Citrix Receiver for Chrome 1.9 at Citrix Docs: To enable enhanced clipboard support, create a REG_SZ registry value HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\Virtual Clipboard\Additional Formats\HTML Format\Name=”HTML Format”. Create any missing registry keys. This applies to both virtual desktops and Remote Desktop Session Hosts.
Workspace app for HTML5/Chrome Upload Folder
The Workspace app for HTML5 (or Chrome) lets upload files.
By default, the user is prompted to select a upload location. If you use the Upload feature multiple times, the last selected folder is not remembered.
Citrix CTX217351 How to Customize File Upload and Download Using Receiver for HTML5 and Receiver for Chrome. You can specify a default uploads location by editing HKLM\Software\Citrix\FileTransfer\UploadFolderLocation on the VDA. Environment variables are supported. When this value is configured, users are no longer prompted to select an upload location. The change takes effect at next logon.
Note: HTML5/Chrome Workspace app also adds a Save to My Device location to facilitate downloads.
4K Monitors
From Citrix Knowledgebase article CTX218217 Unable to span across multiple monitors after upgrade to 7.11 VDA, Black/Blank screen appears on the monitors while connecting to ICA session:
- Calculate the video memory that is required for monitors using the following formula:
SumOfAllMons (Width * Height) * 4 / 0.3, where width and height are resolution of the monitor. Note: There is no hard and fast rule that will work for all cases.Example: Consider the resolution of monitor 1 is 1920*1200 and monitor 2 is 1366*768. Then SumOfAllMons will be (1920*1200 + 1366*768)
- CTX115637 Citrix Session Graphics Memory Reference describes how multi-monitor resolution is determined.
- Open the registry (regedit) and navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\vbdenum
- Increase the value of “MaxVideoMemoryBytes” REG_DWORD value to the above calculated memory.
- Reboot the VDA.
Citrix Policies also control graphics performance.
COM Port Threads
CTX212090 COM Port Intermittently Inaccessible During ICA Sessions: increase the default value of “MaxThreads” under the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\picaser\Parameters from 20 to a value greater than the number of COM port connections you want to support. For example, if a VDA server supports 100 sessions and each session opens two COM ports, the value of “MaxThreads” should be greater than 200.
NVIDIA vGPU GRID License
Allow NVIDIA vGPU GRID License to apply after the session is started. (Source = Jan Hendrik Meier NVIDIA GRID license not applied before the user connects – License Restriction will not be removed until the user reconnects)
- Key =
HKLM\SOFTWARE\NVIDIA Corporation\Global\GridLicensing
- Value (DWORD) =
IgnoreSP
= 1
- Value (DWORD) =
Legacy Client Drive Mapping
Citrix CTX127968 How to Enable Legacy Client Drive Mapping Format on XenApp: Citrix Client Drive Mapping no longer uses drive letters and instead they appear as local disks. This is similar to RDP drive mapping.
The old drive letter method can be enabled by setting the registry value:
- Key =
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\UncLinks
(create the key)- Value (DWORD) =
UNCEnabled
= 0
- Value (DWORD) =
When you reconnect, the client drives will be mapped as drive letters (starts with V: and goes backwards).
Print Driver for Mac/Linux Clients
From CTX140208 Client printing from Mac and Linux clients on Windows 10, Server 2012 R2, and Server 2016. By default, Non-Windows clients cannot map printers due to a missing print driver on the VDA machine.
- Download the HP Color LaserJet 2800 Series PS driver directly from Microsoft Catalog as detailed at CTX283355 Client Printing from Linux/MAC is not working on Windows Server 2016 and 2019. The Catalog is at https://www.catalog.update.microsoft.com/. Then search for hp color laserjet 2800. Pick the 6.1.7600.16385 driver version 💡
- Extract the .cab file using 7-zip or similar.
- In Windows 10 1803+, open Printers & scanners. On the right (or scroll down) is a link to Print Server Properties.
- In older versions of Windows, you can get to Print server properties from Devices and Printers.
- In Windows prior to Windows 10 1703, click Start, and run Devices and Printers.
- In Windows 10 1703, open Printers & scanners, then scroll down, and click Devices and printers.
- In Windows prior to Windows 10 1703, click Start, and run Devices and Printers.
- In the Printers section, highlight a local printer (e.g. Microsoft XPS Document Writer). Then in the toolbar, click Print server properties.
- Switch to the Drivers tab and click Change Driver Settings.
- Then click Add.
- In the Welcome to the Add Printer Driver Wizard page, click Next.
- In the Processor Selection page, click Next.
- In the Printer Driver Selection page, click Have Disk and browse to the .inf that you extracted from the .cab file.
- Select HP Color LaserJet 2800 Series PS and click Next.
- In the Completing the Add Printer Driver Wizard page, click Finish.
SSL for VDA
If you intend to use HTML5 Workspace app internally, install certificates on the VDAs so the WebSockets (and ICA) connection will be encrypted. Internal HTML5 Workspace app will not accept clear text WebSockets. External users don’t have this problem since they are SSL-proxied through Citrix Gateway.
Notes:
- Each Virtual Delivery Agent needs a machine certificate that matches the machine name. This is feasible for a small number of persistent VDAs. For non-persistent VDAs, you’ll need some automatic means for creating machine certificates every time they reboot.
- As detailed in the following procedure, use PowerShell on the Delivery Controller to enable SSL for the Delivery Group. This forces SSL for every VDA in the Delivery Group, which means every VDA in the Delivery Group must have SSL certificates installed.
The following instructions for manually enabling SSL on VDA can be found at Configure TLS on a VDA using the PowerShell script at Citrix Docs.
- On the VDA machine, run certlm.msc.
- Right-click Personal, expand All Tasks, and click Request New Certificate to request a certificate from your internal Certificate Authority. You can use either the Computer template or the Web Server template.
- You can also use group policy to enable Certificate Auto-Enrollment for the VDA computers.
- You can also use group policy to enable Certificate Auto-Enrollment for the VDA computers.
- Browse to the Citrix Virtual Apps and Desktops ISO. In the Support\Tools\SslSupport folder, shift+right-click the Enable-VdaSSL.ps1 script, and click Copy as path.
- Run PowerShell as administrator (elevated).
- Run the command Set-ExecutionPolicy unrestricted. Enter Y to approve.
- In the PowerShell prompt, type in an ampersand (&), and a space.
- Right-click the PowerShell prompt to paste in the path copied earlier.
- At the end of the path, type in
-Enable
- If there’s only one certificate on this machine, press Enter.
- If there are multiple certificates, then you’ll need to specify the thumbprint of the certificate you want to use. Open the Certificates snap-in, open the properties of the machine certificate you want to use, and copy the Thumbprint from the Details tab.
In the PowerShell prompt, at the end of the command, enter‑CertificateThumbPrint
, add a space, and type quotes ("
).Right-click the PowerShell prompt to paste the thumbprint.Type quotes ("
) at the end of the thumbprint. Then remove all spaces from the thumbprint. The thumbprint needs to be wrapped in quotes.
- There are additional switches to specify minimum SSL Version and Cipher Suites. Also see Citrix CTX226049 Disabling Triple DES on the VDA breaks the VDA SSL connection.
- Press <Enter> to run the Enable-VdaSSL.ps1 script.
- Press <Y> twice to configure the ACLs and Firewall.
- You might have to reboot before the settings take effect.
- Login to a Controller, and run PowerShell as Administrator (elevated).
- Run the command
asnp Citrix.*
- Enter the command:
Get-BrokerAccessPolicyRule -DesktopGroupName '<delivery-group-name>' | Set-BrokerAccessPolicyRule ‑HdxSslEnabled $true
where <delivery-group-name> is the name of the Delivery Group containing the VDAs.
- You can run
Get-BrokerAccessPolicyRule -DesktopGroupName '<delivery-group-name>'
to verify that HDX SSL is enabled.
- Also run the following command to enable DNS resolution.
Set-BrokerSite –DnsResolutionEnabled $true
- Since the UDP-based EDT protocol is enabled by default, open port UDP 443 to the VDAs.
You should now be able to connect to the VDA using the HTML5 Workspace app from internal machines.
The Citrix blog post How To Secure ICA Connections in XenApp and XenDesktop 7.6 using SSL has a method for automatically provisioning certificates for pooled virtual desktops by enabling certificate auto-enrollment and setting up a task that runs after the certificate has been enrolled.
- From Russ Hargrove at A note on VDA certificates in 7.14 at Citrix Discussions: Citrix installs a new “Citrix XenApp/XenDesktop HDX Service” certificate in the Personal store which breaks the automation of the Enable-VdaSSL.ps1 script. To fix the problem, modify the task scheduler powershell script to:
Enable-VdaSSL.ps1 -Enable -CertificateThumbPrint (Get-ChildItem -path cert:\LocalMachine\My | Where-Object -FilterScript {$_.Subject -eq ""} | Select-Object -ExpandProperty Thumbprint) -Confirm:$False
- For certificate auto-enrollment on non-persistent Remote Desktop Session Hosts (aka Multi-session OS, aka Server OS VDAs), see Non-Persistent Server SSL to VDA by Alfredo Magallon Arbizu at CUGC.
# First of all, make registry coherent with the listener status Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\Wds\icawd" -Name "SSLEnabled" -Value 1 -Type DWORD # Then, shut down the listener, as it is not configured C:\Scripts\EnableSSL\Enable-VDASsl.ps1 -Disable -Confirm:$false # Finally, configure and start listener C:\Scripts\EnableSSL\Enable-VDASsl.ps1 -Enable -CertificateThumbPrint $Cert.Thumbprint -Confirm:$false
- You can launch the above script from a scheduled task that triggers when certificate auto-enroll is complete.
SCHTASKS.EXE /CREATE /RU "SYSTEM" /SC "ONEVENT" /EC "Microsoft-Windows-CertificateServicesClient-Lifecycle-System/Operational" /MO "*[System[Provider[@Name='Microsoft-Windows-CertificateServicesClient-Lifecycle-System'] and (EventID=1006)]]" /TN "yourtaskname" /TR "powershell.exe -ExecutionPolicy ByPass -File yourscript.ps1"
- You can launch the above script from a scheduled task that triggers when certificate auto-enroll is complete.
Anonymous Accounts
If you intend to publish apps anonymously then follow this section.
- Anonymous accounts are created locally on the VDAs. When VDA creates Anon accounts, it gives them an idle time as specified at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\AnonymousUserIdleTime. The default is 10 minutes. Adjust as desired.
- Pre-create the Anon accounts on the VDA by running
"C:\Program Files\Citrix\ICAConfigTool\CreateAnonymousUsersApp.exe"
. If you don’t run this tool, then anonymous users can’t login.
- You can see the local Anon accounts by opening Computer Management, expanding System Tools, expanding Local Users and Groups and clicking Users.
- If you want profiles for anonymous users to delete at logoff, then you’ll need to add the local Anon users to the local Guests group.
- If you open one of the accounts, on the Sessions tab, notice that idle timeout defaults to 10 minutes. Feel free to change it.
Group Policy for Anonymous Users
Since Anonymous users are local accounts on each Virtual Delivery Agent, domain-based GPOs will not apply. To work around this limitation, you’ll need to edit the local group policy on each Virtual Delivery Agent.
- On the Virtual Delivery Agent, run mmc.exe.
- Open the File menu, and click Add/Remove Snap-in.
- Highlight Group Policy Object Editor, and click Add to move it to the right.
- In the Welcome to the Group Policy Wizard page, click Browse.
- On the Users tab, select Non-Administrators.
- Click Finish.
- Now you can configure group policy to lock down sessions for anonymous users. Since this is a local group policy, you’ll need to repeat the group policy configuration on every Virtual Delivery Agent image. Also, Group Policy Preferences is not available in local group policy.
Antivirus
Install antivirus using your normal procedure. Instructions vary for each Antivirus product.
Microsoft’s virus scanning recommendations (e.g. exclude group policy files) – http://support.microsoft.com/kb/822158.
Citrix’s Recommended Antivirus Exclusions
Citrix Tech Zone Endpoint Security and Antivirus Best Practices: provides guidelines for configuring antivirus software in Citrix Virtual Apps and Desktops environments.
Citrix Blog Post Citrix Recommended Antivirus Exclusions: the goal here is to provide you with a consolidated list of recommended antivirus exclusions for your Citrix virtualization environment focused on the key processes, folders, and files that we have seen cause issues in the field:
- Set real-time scanning to scan local drives only and not network drives
- Disable scan on boot
- Remove any unnecessary antivirus related entries from the Run key
- Exclude the pagefile(s) from being scanned
- Exclude Windows event logs from being scanned
- Exclude IIS log files from being scanned
See the Blog Post for exclusions for each Citrix component/product including: StoreFront, VDA, Controller, and Citrix Provisioning. The Blog Post also has links to additional KB articles on antivirus.
Symantec
Symantec links:
- Symantec TECH91070 Citrix and terminal server best practices for Endpoint Protection.
- Symantec TECH197344 Virtualization best practices for Endpoint Protection 12.1.x and SEP 14.x
- Symantec TECH180229 Endpoint Protection – Non-persistent Virtualization Best Practices
- Symantec TECH123419 How to prepare Symantec Endpoint Protection clients on virtual disks for use with Citrix Provisioning Server has a script that automates changing the MAC address registered with Symantec.
- Citrix Blog Post How to prepare a Citrix Provisioning Services Target Device for Symantec Endpoint Protection
- If profiles are deleted on logoff, set Symantec registry value CloseUserLogFile to 1. Symantec TECH210170 Citrix user sessions are held open by ccSvcHst.exe during log off
Trend Micro
Trend Micro Slow login on Citrix environment after installing OfficeScan (OSCE): The following registries can be used to troubleshoot the issue. These registries will allow a delay on the startup procedure of OSCE until the system has launched successfully. This avoids deadlock situations during login.
Citrix CTX136680 – Slow Server Performance After Trend Micro Installation. Citrix session hosts experience slow response and performance more noticeable while users try to log in to the servers. At some point the performance of the servers is affected, resulting in issues with users logging on and requiring the server to be restarted. This issue is more noticeable on mid to large session host infrastructures.
Trend Micro has provided a registry fix for this type of issue. Create the following registry on all the affected servers. Add new DWORD Value as:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TmFilterParameters] “DisableCtProcCheck”=dword:00000001
Trend Micro Links:
- Trend Micro Docs – Trend Micro Virtual Desktop Support
- Trend Micro Docs – VDI Pre-Scan Template Generation Tool
- Trend Micro 1056314 – Configuring the OfficeScan (OSCE) Virtual Desktop Infrastructure (VDI) client/agent
- Trend Micro 1055260 – Best practice for setting up Virtual Desktop Infrastructure (VDI) in OfficeScan
- Trend Micro 1056376 – Frequently Asked Questions (FAQs) about Virtual Desktop Infrastructure/Support In OfficeScan
Sophos
CTX238012 Logon process to VDAs is extremely slow when Citrix UPM is enabled. Set the following registry:
- HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Sophos\SavService\Application
- DisableAsyncScans (DWORD) = 1
Sophos Endpoint Security and Control: Best Practice for running Sophos on virtual systems: we’ve amassed the following practical information about how you can optimize our software to work with this technology.
Sophos Endpoint Security and Control: Installation and configuration considerations for Sophos Anti-Virus on a Remote Desktop Services server: It maybe desirable to disable the Sophos AutoUpdate shield icon
Sophos Endpoint Security and Control: How to include current version of Sophos in a disk image for cloned virtual machines: This procedure will make sure that the produced target/cloned computers:
- Get their distinct identity with Enterprise Console, under which they can be subsequently managed.
- Have the desired version of Sophos Anti-Virus already installed and configured on the created image.
Palo Alto Traps
- Install Traps Agent for Windows:
- Virtual desktop infrastructure (VDI) installation—Intended for non-persistent endpoints that replicate (also referred to as spawn) from a golden image which has Traps installed.
- Temporary session—Intended for either physical or virtual endpoints (such as a Remote Desktop Server) that repeatedly revert to a snapshot (or image) on which Traps is not installed.
Windows Defender Antivirus
Configuring Microsoft Defender Antivirus for non-persistent VDI machines – Microsoft Blog
Disable Network protection and configure Citrix’s antivirus exclusions (source = Citrix CTX319676 Users sessions are getting disconnected – Connection Interrupted)
Deployment guide for Windows Defender Antivirus in a virtual desktop infrastructure (VDI) environment – Microsoft Docs
Onboarding and servicing non-persistent VDI machines with Microsoft Defender ATP
Cylance
CTX232722 Unable to launch application with Cylance Memory Protection Enabled. Cylance must be run in compatibility mode in order to the VDA and Cylance to run on the same machine. See the article for detailed instructions.
Optimize Performance
VDA Optimizer
Installation of the VDA might have already done this, but there’s no harm in doing it again. This tool is only available if you installed VDA in Master Image mode.
- On the master VDA, go to C:\Program Files\Citrix\PvsVm\TargetOSOptimizer, and run TargetOSOptimizer.exe.
- Then click OK. Notice that it disables Windows Update.
- See CTX125874 How to Optimize XenDesktop Machines for the list of registry values changed by the TargetOSOptimizer tool. You can use Group Policy Preferences to set these values.
Windows 10 / Windows 2012 R2 / Windows 2016 / Windows 2019 and newer
Download Citrix Optimizer and run it.
- Citrix Blog Post Citrix Optimizer 2.6 – What’s new.
- Citrix Optimizer Community Template Marketplace – for more templates, add the Community Template Marketplace.
- Select a template (or download one from the Marketplace). Then click Optimize.
- To roll back Citrix Optimizer, see Citrix Blog Post Citrix Optimizer: How to Roll Back Changes.
Citrix Daniel Feller links:
- Windows Server 2016 Optimizations For Citrix XenApp
- Optimize Vdi: Windows 10 Scheduled Tasks (Original, Anniversary And Creator Updates) contains a list of Scheduled Tasks that can be disabled.
- Optimize VDI: Windows 10 Default Apps (Original, Anniversary And Creator Updates) lists the built-in UWP apps that should be removed.
- Optimize Vdi: Windows 10 User Interface And Runtime (Original, Anniversary And Creator Updates) contains registry keys to improve Windows 10 performance.
James Rankin Improving Windows 10 logon time:
- Removing UWP apps on Windows 10 1803 – the easy way! – YouTube video
Get-AppxProvisionedPackage -online | Out-GridView -passthru | Remove-AppxProvisionedPackage -online
- Use Remove-AppXProvisionedPackage to remove Modern apps. See the article for a list of apps to remove. Also see James Rankin Everything you wanted to know about virtualizing, optimizing and managing Windows 10…but were afraid to ask – part #3: MODERN APPS
- Import a Standard Start Tiles layout (Export-StartLayout)
- Create a template user profile
David Wilkinson links:
- Citrix XenDesktop and Windows 10 Optimisation Script – “Optimise Windows 10 in XenDesktop based environment as per citrix optimisation recommendations/Various blogs and my own experience in running citrix environments.”
- Citrix XenApp and Windows Server 2016 – Optimisation Script – “Optimise Windows Server 2016 in XenApp/RDS based environment as per citrix optimisation Guide in 2008 R2/Various blogs and my own experience in running citrix environments.”
Citrix Links:
- Citrix’s Windows 10 Optimization Guide – remove built-in apps, delete Scheduled Tasks, disable services, etc.
- CTX232313 Citrix Provisioning Services: Slow Login Performance with Windows 10 VDA Machines says that if you removed all Store apps, then the Network Location Awareness Service can be disabled.
- Or enable the local group policy setting Computer Configuration | Administrative Templates | Network | Network Isolation | Subnet definitions are authoritative.
- Or enable the local group policy setting Computer Configuration | Administrative Templates | Network | Network Isolation | Subnet definitions are authoritative.
Microsoft links:
- Microsoft Docs Optimizing Windows 10, version 1803, for a Virtual Desktop Infrastructure (VDI) role
- Microsoft Docs Recommended settings for VDI desktops contains a list of settings with their Default Value and Recommended value for VDI use.
- Microsoft TechNet Blog Guidance on Disabling System Services on Windows Server 2016 with Desktop Experience contains a spreadsheet with a list of services categorized as follows:
- Carl Luberti (Microsoft) Windows 10 VDI Optimization Script
Optimization Notes:
- If this machine is provisioned using Citrix Provisioning, do not disable the Shadow Copy services.
- Citrix CTX213540 Unable To View Printers In Devices And Printers Win 2012 R2 – don’t disable the Device Setup Manager Service
- Citrix CTX131995 User Cannot Launch Application in Seamless Mode in a Provisioning Services Server when XenApp Optimization Best Practices are Applied. Do not enable NtfsDisable8dot3NameCreation.
Applications
Choose installers that install to C:\Program Files instead of to %appdata%. Search for VDI or Enterprise versions of the following applications. These VDI versions do not auto-update, so you’ll have to update them manually.
- Google Chrome – Chrome Enterprise
- Microsoft Edge – Edge for Business
- Microsoft Teams – Teams for VDI
- Some Teams offload/optimization features require VDA 2112 and newer with Workspace app 2112 and newer. Seach Citrix Docs for 2112.
- Microsoft OneDrive – Install the sync app per machine
- Zoom – Zoom VDI
- WebEx – WebEx VDI
- Cisco Jabber – Jabber VDI
- Etc.
Seal and Shut Down
If this VDA will be a master image in a Machine Creation Services or Citrix Provisioning catalog, after the master is fully prepared (including applications), do the following:
- Go to the properties of the C: drive, and run Disk Cleanup.
- If Disk Cleanup is missing, you can run cleanmgr.exe instead.
- Windows 10 1703 and newer has a new method for cleaning up temporary files.
- Right-click the Start button, and click System.
- Click Storage on the left, and click This PC (C:) on the right.
- Click Temporary Files.
- Check boxes, and click Remove files.
- On the Tools tab of the local C: drive Properties, click Optimize to defrag the drive.
` - Run slmgr.vbs /dlv and make sure it is licensed with KMS and has at least one rearm remaining. It is not necessary to manually rearm licensing since MCS will do it automatically.
- Run Delprof2 to clean up local profiles. Get it from http://helgeklein.com/download/.
- Machine Creation Services and Citrix Provisioning require DHCP.
- Session hosts (RDSH) commonly have DHCP reservations.
- Base Image Script Framework (BIS-F) automates many sealing tasks. The script is configurable using Group Policy.
- Shut down the master image. You can now use Studio (Machine Creation Services) or Citrix Provisioning to create a catalog of linked clones.
Uninstall VDA
Uninstall the VDA from Apps & Features or Programs and Features.
Then see CTX209255 VDA Cleanup Utility.
To run the VDA Cleanup Tool silently:
- Execute VDACleanupUtility.exe /silent /noreboot to suppress reboot.
- Once the VDACleanupUtility has finished executing, setup Auto logon for the current user.
- Reboot.
- After reboot, tool will launch automatically to continue Cleanup.
Another option is to delete CitrixVdaCleanup value under HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce. Then after reboot, run VDACleanupUtility.exe /silent /reboot to indicate that it’s running after the reboot.
Hi Carl,
Thank You in advance for the details you always provide here.
I’ve noticed on 1912 LTSR, ever since CU6, when trying to upgrade existing VDA for multi-session OS – when launched it skips right past any Environment step and instead goes right into “Additional components for MCS”
This won’t work for us as we use PVS, and the only solution seems to be uninstalling the existing VDA, rebooting, and then starting the install from scratch (Which is very time consuming with how many Vdisks we have today)
Any idea why this started happening? I also have tried via commandline using /masterpvsimage but it does the same thing.
In-place upgrade keeps the settings that you chose when originally installing the VDA.
Our TAM said that CTX234824 Citrix VDA Commandline Helper Tool: a GUI to configure the VDA installation options.
is deprecated. What say Carl?
I think that’s correct.
We have an environment with Separate Citrix Farms with StoreFront aggregation. Can we still have all delivery controllers under ListOfDDC or do the desktops within respective sites need to have the DDCs for their site.
For example the DC1 desktops have DC1 DDC controllers under listofDDC and DC2Desktops too have DC2 DDC Controllers.
I’m hoping all desktops can have all DDCs so I don’t need to specify specific ones for vdacommand installer.
VDAs can only register with a single site/farm.
You can create a GPO for each site. Inside the GPO is Citrix Policies. Inside the Citrix Policy is a setting called Controllers to specify the Delivery Controllers. Bind the GPO to each OU containing VDAs in respective site/farm.
Thanks as always! That makes sense.
As a separate question, within VDA Command line if its a dedicated machine which is not a master image provisioned by MCS, we don’t need to specify mcsmasterimage – just virtualmachine should be enough right.
Is the optimize key still valid or Citrix Optimiser tool is a better placement for it?
No need for mcsmasterimage on dedicated machines unless you are using MCS to create the machines.
Citrix Optimizer is the better tool.
Thanks
We have master image vm for dedicated to spin full clones, so when doing a update or reinstall is /mcsmasterimage still required on all standalone dedicated desktops or only the master image template?
Only if you’re doing MCS to create the VMs from the master. If you are instead cloning them manually in vcenter, then you don’t need it.
Hi carl,
I have citrix environment with consist of 2 servers (VM).
1. Delivery controller
intel Xeon 2.60 Ghz 4 core 10GB RAM
2. VDA
intel Xeon 2.60 Ghz 16 core 128GB RAM
we are using Citrix about 80 Users. the server has a problem if the user has reached 70 Users. sometimes the problem is the server freezes(not responding) while we have the session or using rdp.
RAM and Processor is good performance.
I need your advice.
Thanks
If the server freezes, then it’s probably a driver causing the issue. Ensure all drivers are up to date, including any security software that uses drivers.
Hi Carl,
if a driver causing the issue, why when the session under 70 users the server is normal.
Hi Carl, why do you still include enable framehawk in the VDA install command you put there. I thought Framehawks no longer supported?
Can you enable MCS IO for full clone persistent desktops, my guess is no right?
That seems to be legacy content that I missed. It should be removed now.
MCS IO requires non-persistent machines since it writes changes to memory instead of disk.
Thanks,
If you are using MCS but for dedicated full clones on the vda command do you use//mastermcsimage or /masterimage?
Aren’t they equivalent? https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/install-configure/install-command.html
Carl, do you have any articles that help with reducing the time between ICA launch and server login? Seems like 10 seconds is the constant here, even if virtual channels are disabled.
We are getting quite a few VDA with the following warnings
Connection broken unexpectedly for user XXXXX
Source RPM
ID 12
Session reliability suspended the connection for user
Source RPM
Event ID 10
did you manage to resolve this one ?
same problem here, did you solve it?
We needed up installing a different version of VDA and reducing the number of users on the VDA
did you fix the event id 12 RPM ?
Hello Carl,
we use several m365-Tools (office, teams…) and other (mostly webbased) Software utilizing Azure MFA in our Citrix (1912 LTSR). On our laptops everything works fine (ie one time authorization and user can work with all tools over several days without reauth). But with citrix one user has to authenticate in every single app (in the same session) with MFA… Office is installed with shared activation key, we’re using fslogix o365-containers.
Do you have any idea / hints as to where to look for infos / errors with that? Not sure if I’m correct over here…
kind regards and a wonderful christmas time for you and your family!
Is IncludeOfficeActivation enabled?
Do you have Seamless Single Sign-on enabled in your Azure AD Connect? Or are your VDAs hybrid joined with to Azure AD and users are getting PRT at logon?
Hi Carl and thatnks for your answer!
IncludeOfficeActivation is enabled, our VDAs are only hybrid joined. For Seamless Single Sign-on I will have to check since I’m not the one configuring the AAD Connect…
What do you mean by PRT at login?
Many thanks!
See https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso
Hello Carl. We recently updated our Virtual Agent from CU1 to CU5 and none of our Printers are mapping. Please advice.
Christian
Is Citrix Print Management service running? Have you tried uninstalling the VDA and reinstalling it?
Yes, Citrix Print Management service is running and we’ve tried reinstalling it as well. We can still search for the printers but they don’t map automatically like on CU1 and Citrix Director also shows 0 on mapped printers. Do we have to update our PVS Servers as well when we update our VDAs on the VDI images?
Thank you in advance.
Hi Carl.
I have experienced an issue and I hope you may give me some advice here:
I have made the whole VDA installation process as mentioned above but with 2 domains. I have 1 forest with 2 domains, the main domain dc (forest dc) is for users, the secondary domain (internal.xxxx.local) for the devices and the vda is part of the internal.xxxx.local domain of course. So when I login via Workspace App the first Login Screen I see is the sys admin from the devices subdomain and needs nearly 10-12 seconds to switch to the forest-domain til the user logs in. sometimes the users needs to help with STRG+ALT+DEL to push the login process.
May you have some ideas?
Hi, is there anyone who succed to Share the Screen is MS Teams throught external HTML5 session from Google Chrome Browser?
In my case, in external HTML5 session, only audio/video are working, and powerpoint sharing.
But I’m not able to make screen sharing working.
To precise, it wirk internally from citrix workspace app
Thanks for your reply!
Pierre
Hi, after upgrading to 1912 LTSR CU5, we have the problem, that mcs created machines haven´t been updated, when updating the catalog. everything is green, but when i change something on the master and make a rollout, it doesn´t reflect changes. i deleted the machine catalog and created a new one. any ideas?
In Studio, what do you see in the Pending Update column?
Pending Update under the Machine Catalog is “yes”, but i have rebooted the VM.
How are you rebooting? Make sure you reboot from inside Citrix Studio and not from the hypervisor.
that did the trick, but is this new?i rebooted for testing all the time over hypervisor and it worked..thank you so much, blame on me 🙂
While installing VDA 1912 CU5, it throws the error for printer permission three times. Clicking ok let the install completes but the user session do not map the local printers in citrix sessions. Error is “Printers – You do not have permission to modify the settings for this printer. If you need to change the settings, contact your system administrator”
Is a group policy affecting printer permissions?
Help please! I upgraded our VDA’s from 7.15 to 1912 CU5. On all of them (30), I have the following error repeatedly: Printing virtual channel request timed out. The default timeout value is 54000 milliseconds. This timeout is the duration that the Citrix Print Manager Service waits for a response on a printing virtual channel request. (Windows Event 1113). It seems to be freezing the Citrix session in some cases. This happened immediately after upgrading to 1912 CU5. TIA.
We have the same issue (random) with 2203 CU2
Finally, how did you correct the problem?
I have a similar issue after upgrading from 1912 cu5 to 2203 cu4 .
Were you able to find a fix?
For those experiencing failures and headaches with return codes of ‘3’ for automated installations, I’ve just gone through this process intensively and have all the answers you need, allowing for a Success Code of ‘0’ every time without a reboot.
The answer is make sure sendexperiencemetrics is disabled prior to running the install. This is the difference between a Success Code of ‘3’ and ‘0’ and a reboot will not be required to complete VDA installation and registration with delivery controllers.
If this is not disabled, the machine gets a Return Code of ‘3’, restarts, runs the cached installer and connects to https://rttf.citrix.com to upload data from %ProgramData%\Citrix\CTQs\metainstaller.dat. This is the only difference!! (For Citrix: is this purposely undocumented?)
Using https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/install-configure/install-vdas-sccm.html does work but a couple of things to note:
– I found the installer cache is not stored under %ProgramData%\Citrix\XenDesktopSetup, but instead is %ProgramFiles%\Citrix\XenDesktopSetup. I used the Core VDA install so my installer was cached to %ProgramFiles%\Citrix\XenDesktopRemotePcSetup.
– For my installation using the /sendexperiencemetrics switch in the command line was not accepted. Instead I modified the registry as follows: (you can also set this via Group Policy Preferences)
REG ADD “HKEY_LOCAL_MACHINE\Software\Citrix\MetaInstall” /v SendExperienceMetrics /T REG_DWORD /D “0” /F
Here is the complete SCCM task sequence used for easy replication :
=====
Step 1:
If %programfiles%\citrix\virtual desktop agent EXISTS,
cmd.exe /c vdacleanuputility.exe /silent /unattended
Step 2:
If _SMSTSLastActionRetCode NOT EQUALS 0, restart computer.
Step 3:
If _SMSTSLastActionRetCode NOT EQUALS 0, restart computer.
(Repeating this twice is sufficient and vdacleanuputility.exe will launch automatically after reboot, so no need to specify it in the task sequence again)
Step 4:
If %programfiles%\citrix\virtual desktop agent DOES NOT EXIST, restart computer.
Step 5:
cmd.exe /c REG ADD “HKEY_LOCAL_MACHINE\Software\Citrix\MetaInstall” /v SendExperienceMetrics /T REG_DWORD /D “0” /F
Step 6:
Run VDA installer with required switches. I used /NOREBOOT /QUIET /ENABLE_REMOTE_ASSISTANCE /NORESUME (/NoReboot and /NoResume is required for SCCM to handle the restarts)
Step 7:
Run cached VDA installer to continue install if required.
If _SMSTSLastActionRetCode EQUALS 3,
cmd.exe /c if exist “%ProgramData%\Citrix\XenDesktopSetup\XenDesktopRemotePCSetup.exe” ( “%ProgramData%\Citrix\XenDesktopSetup\XenDesktopRemotePCSetup.exe” /NOREBOOT /QUIET /ENABLE_REMOTE_ASSISTANCE /NORESUME ) else ( “%ProgramFiles%\Citrix\XenDesktopRemotePcSetup\XenDesktopRemotePCSetup.exe” /NOREBOOT /QUIET /ENABLE_REMOTE_ASSISTANCE /NORESUME )
(I included %ProgramData% for the cached install just in case, to match https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/install-configure/install-vdas-sccm.html and even though this article says the installer switches are not required again, I found they are. Having said this, since disabling SendExperienceMetrics, a second reboot has not been required yet. I can see this in the SCCM deployment Status Messages.)
Step 8: cmd.exe /c REG ADD “HKEY_LOCAL_MACHINE\Software\Citrix\MetaInstall” /v SendExperienceMetrics /T REG_DWORD /D “0” /F
(Step 8 is just in case the completed install reverted this setting)
=====
The complete VDA cleanup utility and new VDA installation , including reboots, has always taken between 14 – 18 minutes and is a complete, automated install.
My life is so much simpler now.
Hi Phil,
Been on 1912, and need to upgrade to 2203. To get 1912 installed, I was able to use a simple required app deployment with a reboot. I assume once the systems boots back up, Citrix thinks the SYSTEM account is logged in, and finishes the install.
But the upgrade process is just hell. I took your idea, and ran with it, and got failures. According to Citrix, we should no longer use the VDA Cleanup utility. So I decided to just use what’s already there
“C:\Program Files\Citrix\XenDesktopVdaSetup\XenDesktopVdaSetup.exe” /removeall /quiet /noreboot
However, it did give an exit code of 3. I didn’t eve think about it. So it failed on my test machines. So I think to be on the safe side, we should always “Continue on error” if we are confident the software is running. Thanks for the tip. Citrix’s own documentation is very must confusing, and doesn’t make sense half the time.
HI Carl can you provide me a link with recommended citrix AD user non administrator policies for virtual apps in 1912ltsr , user administrator policies and computer policies needed with citrix profile management and office 365
See the Policies section at https://www.carlstalhood.com/xaxd/citrix-virtual-apps-and-desktops-cvad-1912-ltsr/
Just when we thought the ghost sessions issue was finally resolved with CU4 fix CTX338807, it’s back for CU5 in our environment. Same behavior, just with less severity. This time 1% of our connected users are affected, who are stuck until the restart of the VDA or the taskkill of logonui.exe…
still having the problem with CU5? just upgrading VDA to CU5, or shall i direct update to 2203 LTSR?
Hi Carl,
Wonder if you can advise, We are trying to upgrade our VDA’s from 7.15 to 1912 cu5 via a commandline script and on the Citrix website they suggest selecting /RemotePC command line option for server based OS but if that stops us installing UPM it will be useless for us,
Am i missing something or is there another specific option that needs to be specified for a multi session OS ?
(We have over 100 servers that are not being provisioned by PVS or MCS (legacy installs) and we need to automate the VDA upgrade through SCCM)
Thanks in advance
Excuse me, can you publish ubuntu 20.4 to create mcs VDI desktop?
bceause i using MCS to create Linux VMs on vmware, “Invalid login” will appear when you log in to the desktop
Fantastic blog, Carl! I did notice that under the “Multi-session VDA 1912 CU4 Hotfix 1” section, the path for the file is different than what is on the Citrix website. This blog has “C:\Program Files\Citrix\HDX\bin” but the Citrix article has “C:\Program Files (x86)\Citrix\System32”. Our servers only had the path mentioned in the Citrix article.
Thanks for pointing that out. It looks like the 1912 CU4 instructions are different than the 2012 instructions. 🙂
Hey!
Thanks for an incredible job on this blog!
I got a problem that possibly may find it’s solution here: trying to deploy test installation for some particular case, that I can’t unfortunately disclose here, but it involves working with ipv6-only MS AD DCs and Controllers (as well as desktop VMs) deployed in a dual-stack (ipv4/ipv6 residing in the same network adapter) network environment.
Atm I’m having problem with VMs registration – I guess it tries, for some reason, to work using ipv4 stack.
Found a policy, that can enforce it to use ipv6 only called “Only use IPv6 controller registration” and it should be in the VDA ploicy administrative template, as it is stated in the article https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/1912-ltsr/manage-deployment/ipv6.html
But I’m failing to find any means to get my grip around anything or to find any place, where I can download or extract it from.
Point to the right direction would be massively appreciated.
This setting is only available in a Citrix Policy that is inside a GPO. See https://www.carlstalhood.com/citrix-policy-settings/#gpoplugin to install the GPMC Plugin. Then edit a GPO that applies to the VDA machines and find the Citrix Policies section in the Computer half.
Thanks a lot! Already found it while browsing the blog. Unfortunately it was not enough. Although I was able to fix the issue – as usual, it was a couple of fw rules slipped through sec engineers hands ><
Hi
Is somone can give link to VDA Insllation command line helper ? it cannot be downloaded from Citrix KB web apge…
Many Thanks
I think it was removed. I’m not sure of the future plans for the tool.
Anyone See Slow Download speed when using Microsoft Edge to a netapp file share? This does not happen in Chrome, we use Citrix MCS 1912cu4, Windows 10 LTSC, We are in AWS?
upgrade your edge version this is fixed in the newest version
I can report the same as JTECH, except they looked at a memory dump I supplied them and said it was a Microsoft issue, even though it happened when upgrading to CU4; downgrading back to CU3 after VDA Cleanup got rid of the issue.
CU3 ran flawlessly. Since upgrading to CU4 we are experience some weird lingering disconnected user issues.
Anyone getting issues with disconnected sessions lingering since upgrading to 1912 CU4? I’m not talking about users sessions GETTING disconnected, rather their sessions stays in the disconnected state long after they’ve logged out. We also have lots of (6) users showing as disconnected in task manager. I also have no way to get these (6) users to log off or disconnect short of rebooting the server.
This doesn’t pose a big issue on some of our servers (other than the fact that each (6) sessions is taking up 25 megs of ram), however on Virtual Applications servers where we use FSLogix it becomes an issue. The FSLogix VDA stays mapped to that particular server (eg: ServerA)- so when a user tries to log in later in the day and happens to hit a different server (ServerB) they can’t log. The only solution I’ve found so far is to manually disconnect the open VDA file share to ServerA.
I’ve since put all but one of my CVA servers that use FSLogix into maintenance mode in hopes that it will mitigate the issue.
As a note, it’s not just CVA servers that us FSLogix that are showing the issue. Other servers that don’t use FSLogix still have dozens on (6) users in the disconnected state.
I am having the exact same issue with our environment after upgrading to CU4, In a way I’m glad to know that it just not us. The worst part about it, is that it only happens to 5-6 users a day (out of about 110 in our company), which makes it a lot harder to troubleshoot. I will be putting in a Citrix support ticket, in hopes they can find something out.
Bit of good news. I downgraded one of my servers to CU3 and so far so good.
I also opened a ticket earlier this week. So far their solution is to follow this document:
https://support.citrix.com/article/CTX219861
I’m not sure I like the behaviour I’m going to see once I make those registry changes, so for now I’m just going to stick with the downgrade.
Speaking of CU3… Were there any serious security issues patched in CU4? On other hands, can I just downgrade to CU3 and wait for CU4.1? 🙂
Bit of bad news. So I have tested 2 servers so far.
ServerA – I restored from a backup prior to upgrading to CU4. This server is working wonderfully – so far. not a single stuck session (yet), and no support calls (yet). Been running for about 36 hours. I had checked it at one point yesterday and it was running fine with 56 users.
ServerB – I uninstalled CU4 and then reinstalled CU3 yesterday. Took out of maintenance mode yesterday evening after hours – would likely have seen some very light usage over the evening, woke up to a few support emails this morning already, all users reporting issues were trying to join to ServerB. Haven’t had much time to look into it, but it seems that there are issues launching apps – like the app would just stop loading indefinitely about 33% of the way through the progress bar. Haven’t had a lot of time to troubleshoot. Server hasn’t been on long, but when I checked the task manager there was a (5) user [yes, five, not six] that was stuck in the disconnected state.
I’ve put ServerB back in maintenance mode and will just be using ServerA today. I don’t have a backup of ServerB, so I will likely try rebuilding.
Both of you use Appsense?
I’m not using Appsense. I decided over the weekend to roll back our VDA’s to CU3 and haven’t seen any issues yet, so I’m just going to stay on CU3 until I hear of a possible hotfix or a viable workaround to the issue.
We are not using Appsense over here at JTECH.
Just to be clear, your controllers are still CU4 in this setup and you’re only having problems with the CU4 VDA? I’m planning a CU4 upgrade monday and i’m starting to get the jibblies a bit about it. Thank you!
Hi Mike,
So here is my basic VDA layout
ServerA – MS Office, FSLogix
ServerB – MS Office, FSLogix
ServerC – MS Office, FSLogix
ServerD – MS Office, FSLogix
ServerE – Financial Software
ServerF – Time Tracking Software
I initially put servers B,C, and D into maintinance mode and upgraded server A to CU4. I let it run for about a week to see if there would be any issues. During the week there were no “reported” issues. In hindsight if I had checked the task manager I would like have seen dozens of (6) disconnected users.
So after a week of no “reported” issues I decide to upgrade everything (Controllers, StoreFront, remaining VDA servers). Once everything is upgraded I take ServerB out of maintenance. I now have ServerA and ServerB running. The next day things got bad.
The best I can tell is that any user that connected to ServerA on day 1 and then connected to ServerB on day 2 couldn’t log in. Their FSLogix profile was still connected to ServerA. If I forcefully disconnected the open share from the FSLogix profile server then the user could log into ServerB.
I then checked on my 2 non-FSLogix servers. Sure enough they had a few dozen (6) users in the disconnected state and some user still showed as disconnected LONG after I know they had been off work.
So long story short: something with CU4 causes some sort of lock on some user accounts and keeps them connected, long after they’ve actually disconnected. It also seems to generate a lot of (6) users that stay in the disconnected state indefinitely.
The only solution I found was to go back to CU3. Now, just uninstalling CU4 and then re-installing CU3 create a whole other mess of issues, so I was forced to rebuild ServerA,B,C,D from scratch.
ServerE and ServerF are still running CU4, however as they don’t use FSLogix users don’t notice any issues. I just need to reboot them weekly to get rid of the (6) users that are stuck in the disconnected state, as well as actually users stuck in the disconnected state. The (6) users seem to use about 30 megs of ram per (6) user.
Still working with Citrix support on the issue. They currently have me CDF and Procmon and then sending them some logs. They also want me to implement the following CTX articles to see if it will help:
https://support.citrix.com/article/CTX213500
https://support.citrix.com/article/CTX107825
Hello, Having the same on 1912 CU4. Did you received a fix from Citrix?
Unfortunately Citrix support has not been able to find a solution… I don’t even think they’ve found the cause…
I have submitted over 20 gigs of CDF logs to them and they haven’t been able to find the issue yet, let alone propose a something to try and fix the issue other than what I’ve already posted.
When I told them the issue went away when rebuild my VDA servers with CU3 they seemed happy to accept that as a solution and wanted to close the case. I told them that was unacceptable…
Hi,
We are having the same issue with CU4. Citrix support is useless…
Problem is gone after downgrading all vda’s from CU4 to CU3 using VDA Cleanup Utility
Hi JTECH, Basil,
Can’t reply to your message, but I found the following item:
https://www.reddit.com/r/Citrix/comments/qtqmuq/ghost_sessions_at_logon_with_latest_versions/
I created a scheduled task on one of my management servers and from now I run vitiris script every 10 minutes.
It search for hanging loginui.exe processes and kill them.
Citrix Support told me it was a Microsoft issue after they analyzed a memory dump, even though the issue didn’t start until I upgraded to CU4. I performed the VDA Cleanup and re-installed CU3 like preiviously mentioned and now it’s back to normal. They also closed it even though they did not solve the issue.
We are also affected by the problem since upgrading from CU3 to CU4. Different versions on the backend and on the VDA were not recommended to us by Citrix support, since otherwise no further support is apparently provided. So far we have tried a few things together with Citrix support, but no improvement. About 7% of all users on our farm are affected until we step in and kill the sessions using taskkill. Very frustrating.
Can you post the taskkill command you’re using please?
taskkill /s citrix-vmXX /f /im logonui.exe
on each of the VDA servers. Seems to just log off the broken sessions, our most reliable workaround we’ve found so far.
Interesting… I just tried that on my server and it did “something”. I went from having a dozen (6) users each taking about roughly 35 megs of memory to a dozen blank users taking up no memory.
Are you showing the same behavior?
https://imgur.com/a/cVVeZkV
Unfortunately, I couldn’t reply to your latest entry (December 9, 2021 at 7:39 am): No, we don’t have that behavior with our infrastructure. We had some users who appeared as (6) or (4), some with their correct username but with the status Disconnect, but they all disappeared after the taskkill (at least after restarting Task Manager). The unnamed sessions (“-“) in Citrix Studio are completely gone after the command and the users can then start applications again.
Ahhhh – If I close and reopen Task manager the blank users are gone.
So, the taskkill seems to be a good replacement for a reboot.
I’ve sent a 21 gig CDF log file to Citrix for review. They wanted to know exactly when the (6) users showed up. I told them I couldn’t sit here and watch Task Manager all day for that.
Hello,
Has anyone received feedback from Citrix Support to resolve this issue?
Thanks
Hello again, after almost two months of Citrix support odyssey, we received a private patch that seems to actually fix the problem. We’ve only had it installed for a few hours, but it looks really promising.
Also got a patch. However, it says to replace a file in a location that doesn’t exist on my VDA servers….
For me, VDA 1912 LTSR CU3 installed and ran perfectly OK on Windows 11, but I see that the VDA for 1912 LTSR CU4 now refuses to run. It therefore looks to me as though Windows 11 is not supported for “because we said so” reasons, rather than anything based in reality!
Hello Carl, can I just run the VDA upgrade directly on an existing 7.15 PVS image or I need to start with a fresh VM and follow the master image creation process? Thanks in advance !!
You can in-place upgrade the VDA on a vDisk. However, Target Device software upgrade or VMware Tools upgrade might not work unless you reverse image. Recent versions of PVS let you in-place upgrade Target Device Software without reverse imaging.
Can anyone comment on best practices for configuring VMXNet3 Advanced Options? Specifically Offloading or RSS for best Citrix performance?
Hey Carl,
I have a windows 2019 with 1912 CU2 – 2 months old. The server just lags, I open windows explorer, it takes couple seconds. I am sitting right next to the server. Local LAN and on-prem. I print and preview and it just takes several seconds. I click on drop downs and it just doesn’t respond. I have to click several times. You can tell, it is sluggish. When I had Win 2012 with Xenapp 7.15 it was much faster. Then MS disabled SMB1 on Server 2019. That is another thing, I would ask why but I am just to tired to even bother anymore.
Have you seen or heard of sluggish performance? I look at the task manager and everything is normal I have 62gb of ram and utilizing only half. I have 100gb hd and utilizing 60gb. There are about 20 people on the server. 10gb nic is enabled.
Try disabling Adaptive Transport in a Citrix Policy. If legacy graphics mode is enabled then disable that setting too. What other Citrix Policy graphics settings are configured?
What version of Workspace app and what client OS?
Adaptive isn’t enabled, it is set to off. No legacy graphics is installed either. I don’t have much configured in the citrix policies. I was going to post an image but I can’t seem to do it.
Enhanced Desktop experience is allowed. In user setting, I have things like audio quality = medium, menu animation = allowed, target fram visual display = 30fps. The rest of the policies control printers. I have a 7.14 setup on Server 2012 and it seems to be working ok.
I tried it with varies Workspace app versions all the way to the latest. I am on 21.6.0.47 right now and various versions of Windows 10 is installed. It is consisten sluggish experience in all.
Sorry for the late reply.
I have tried so many things. I removed Mcafee compeletly, checked the power configuration, updated to the latest version of server 2019. Removed Fslogix. I have the same sluggish behavior in Xencenter console when I access those Vdas. I downgraded and upgraded xentools but still the same thing.
Wrong post, sorry about that. About this: https://support.citrix.com/article/CTX319750. I upgraded my MCS master image from 7.15CU4 to 7.15CU7 and after that I installed both x64 patches. After I updated my test VDA (Shared Desktop, WS2012R2) I noticed that first login my Firefox profile is OK, but if I logoff and login back to the same VDA my Firefox profile is reseted. If I watch after the logoff I can see in our network share that the firefox folder is empty. We us UPM gpo, firefox folder mirror and everything works fine on other VDA’s. Any help?
Same problem with 19.12 CU3 with hotfixes.
Hi… after installing the UPM Hotfixes (For CTX319750) I’m getting an Error Message while starting outlook.
—————————
OUTLOOK.EXE – Ungültiges Bild
—————————
C:\Program Files\Citrix\User Profile Manager\upmoutlookhook.dll ist entweder nicht für die Ausführung unter Windows vorgesehen oder enthält einen Fehler. Installieren Sie das Programm mit den Originalinstallationsmedien erneut, oder wenden Sie sich an den Systemadministrator oder Softwarelieferanten, um Unterstützung zu erhalten. Fehlerstatus 0xc0000428.
(Sorry, its a german installation).
Outlook will start after choosing “ok”.
OS is Win 2012R2, Citrix 1912 CU3
Is anyone else who gets this message? What can I do? And what is the upmoutlookhook.dll?
Citrix Updated the Known Issues:
https://support.citrix.com/article/CTX319819
Hey Carl!
I am lost, as I would have to configure a Master VDA to be able to use it with two nics, one with an internet connection and the other towards the DC and domain. I have used routes, but I get nothing. any ideas?
I think there’s a way to specify which NIC is used for VDA registration (and ICA traffic) but I haven’t found how to do that yet.
Hi Carl!.
As configured in Master VDA with two NICs, one with an exit to the Internet and another one for communication of the DCs and the domain, I have tried everything and I can not find it. I’ve tried routes, Forwarded, etc …
The VDAs are recorded well in the DCs, but when I open the applications, sometimes it works and others, if I do these tests with a single NIC in the VDA, everything works well.
Regards
Hi Carl, I am curious why you’ve mentioned using a hybrid of FSLogix and UPM. Is it a more reliable or better solution than just FSlogix on its own?
Curiously, as an organisation we are in the process of troubleshooting an issue with a customer recently during pilot testing an on-prem CVAD 1912CU2 solution using the very latest FSLogix with FAS in the mix, where user logons will occasionally hang waiting for FSLogix. We have proposed the hybrid FS/UPM solution you have mentioned which resolves the hang. The hang seems to only occur when using only FSLogix for full and office profiles when FAS (SmartCard certs) are used for logons.
Regards Rod
UPM has a rich history of keeping profiles small with configurations for exclusions, inclusions, and mirroring. FSLogix tends to capture everything and thus requires more disk space.
Hi Carl
Happy New Year and hope you and the family are keeping safe and well!
Ran into a weird issue recently where FSLOGIX causes KB4593226 for Windows 2016 Dec 2020 CU update to constantly fail to install after a reboot. “Package kb4593226 failed to be changed to the installed state.” is shown in the event log after the restart.
It was driving me nuts trying to work out what was causing the update to fail but eventually I tracked it down to FSlogix (the last two releases) preventing the CU from installing. Hope you can add this to the VDA section and help others that may be having the same issue.
Kind regards
H
Have you tried Microsoft Q&A? https://docs.microsoft.com/en-us/answers/search.html?c=7&includeChildren=false&f=&type=question+OR+idea+OR+kbentry+OR+answer+OR+topic+OR+user&redirect=search%2Fsearch&sort=newest&q=fslogix+
Hi Carl,
i hope you can help me with my problem. I would like to update our VDA´s from version 1912 to 1912CU2. I created a powershell script wich copy the stuff i need to the server and creates two tasks.
First Task –> remove the installed VDA (works fine)
Second Task –> schould install the new VDA – And here ist the Problem. The Task runs after the reboot (simple batch script) and the installer only makes a reconfiguration. When i execute the script manually it works fine.
In march 2020, i did the update from 7.15 to 1912 on the same way. all works fine.
Maybe you have a usefull tip for me.
Regards , Alex
Hi Carl,
we use citrix XD 1912CU1 in our environment along with PVS. when I install zscaler agent on the base image and publish it, the VM shows BSOD on boot just before it hit hits the pvs.
I assume its due to the fact that zscaler agent is meddling with network stack.
have you come across this issue ? any possible solution.
Hi Carl,
I have a customer that have 2 domain.
Domain A (VDA is joined to this domain)
Domain B (Thrust relationship with Domain A activated)
User from domain A are able to connect to VDI (Windows 10) without any issue
User from domain B can’t login and receive this error from windows
“group policy client service failed the sign in access is denied”
Do you have any suggestion?
Is Allow Cross-Forest User Policy and Roaming User Profiles enabled in GPO?
Hi Carl, thank you for your response.
Yes, cross forest Enabled and Domain Users of Domain B added to Users Group
Are the Domain B users added to local Users group on the VDA?
Hi,
last weekend we upgraded a couple of enviroments to 1912 LTSR CU2 (coming from a wide range of 7.XX environments) and now face an issue where a user that is disconnected, never reconnects to the disconnected session. When a user disconnects and logs back in, they are always given a new session. Even on the same server. So far there is nothing we can find on the StoreFront or VDA that shows any error. Some any experience with this issue?
Hi Carl,
we currently configure a 1912 LTSR Solution as an upgrade to our 7.18 (parallel installation, completely new and independant).
We have one issue still: Using Win2019 Servers, our Citrix Sessions (via Netscaler oder internally, no matter) often disconnect after short idle times despite being configured in GPO to only lock the desktop (it’s working on the 7.18 Win2016 Servers). Disconnect is configured after 10 Hours.
Is there any known issue in 1912 LTSR CU1 or Win 2019? We absolutely have no clue where to look as we double checked all settings we are aware of.
Thanks in advance
Daniel
Check HKLM\Software\Policies\Citrix\{SessionNumber} for timeout settings. Also check HKLM\Software\Policies\Microsoft\Windows NT\Terminal Server for timeouts.
Are you doing UDP instead of TCP? Director Session Details will show you if TCP or UDP. If UDP, some networking equipment (e.g. firewalls) don’t handle UDP sessions correctly.
Thanks for the fast reply!
I Checked both Regkeys, only in MS-Branch there is “MaxConnectionTime” set to 2932e00 (43200000) which should be sufficient. And Director says protocol is TCP…
It’s a strange behavior… Is there any log where we possibly could find more information about the reason of the disconnection?
Best regards
Daniel
Maybe this – https://discussions.citrix.com/topic/316153-citrix-remote-disconnect-remote-disconnect-source/
I’m guessing you have a Citrix Policy that enables “Session Connection Timer”. I would disable it (the default) because it doesn’t care if the user is idle or not.
I’ll try that log, thank you!
Since I’m working in financial sector it’s a security issue where we are forced to desconnect sessions after a set period of time, regardless of the user being idle or not… 🙁
Hi Carl
I have been following your articles and they have been really helpful. I have recently captured a new WIN-10 image built from the task sequence. Since the rollout of this image, logon time have increased and we haven’t found a way around. We are experiencing a ‘black screen’ pause before the desktop is displayed for the user.Do you have any tips for reducing this?
Details are as follows of the environment are:
VMware tools:11.05
WIN-10: version 1809
VDA : 1912 LTSR CU1
PVS Agent: 1912 LTSR CU1
Please assist???
My normal process of troubleshooting this is to run a procmon trace during a logon to see what’s happening.
We have been following these articles and they have been really helpful in putting together a new environment with better log in times than our old one. We have one problem we haven’t found a way around, we are getting ‘black screen’ pause before the desktop is displayed for the user, it is the longest single part of the log in process. Do you have any tips for reducing this?
What kind of VDA? Single-user? Or multi-user?
I usually get a procmon trace of the logon process and then analyze the procmon trace.
Hi Matt,
I am encountering the same issue as yours?? Any luck on to resolve the issue??
Hi Carl, I have configured a test 1912 environment with a brand new Windows 10 VDA (v2004). However, we are having an issue with memory on the Windows 10 XenDesktop. Even with not much installed on the image it is still consuming over 50% of the allotted 8 GB of memory when users are signed into it using UPM. If I just log into it via the VMware console as an Admin the memory is considerably lower. This exact problem is also occurring in our 7.15 LTSR environment, in an older release of the OS (v1703). Are we not configuring something properly here? Have you seen this behaviour before with Windows 10 in XenDesktop?
Hey Carl, I’m looking to expand the video memory limit on my 1912 LTSR farm. I’ve increased it via policy and about to test but im looking in the section above about change the regkey “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\vbdenum”. I’m assuming this is to be changed on the VDA itself but I dont see that on my 19.12 servers. Any thoughts on that?
Just looking at all options while i research the problem.
I think that key is only on Desktop OS, not Server OS.
Hello Carl : Hope you are doing well, i need your help as i knew when everybody stucked only Citrix God Carl can help, last one week i was trying to get help from Citrix vendor but no luck, recently i build 1912 LTSR CU1 environment build, Even everything looks fine but when we are creating master image into vdisk getting lots of problem, we have one single partion as C drive and size is 300 GB out of 300 GB we have 450 MB Healthy Recovery Partion (system Partion) and 99MB Healthy (EFI System Partion) , duruing Vdisk process creation whenever we are getting screen like Reboot and Shutdown and set Network Boot we did shutdown and set Boot Option from BIOS as Network Boot, later once we have powered on this master image we are getting error No bootable drives found have been found or no OS, also we have set scope options in DHCP and IP is getting from DHCP , we have set this option in DHCP SCOPE : 003,004,006,011,015,017,066,067
Hi Carl, we met issue about creating VM via MCS. VM was sticking boot manger when created preparation image. Do you have any idea?
environment:
ESXi 6.0
Vcenter 6.7
Virtualapp and desktop 1912
OS: Win10 LTSC 2019
FYI… Per https://www.mycugc.org/blogs/brandon-mitchell1/2019/09/22/not-so-fast-reconnect
“Update: Unfortunately it’s not referenced in CVAD 1912 LTSR fixed issues, but this is resolved and the FastReconnect registry entry is no longer necessary.”
Thanks. I just removed that section from the article.
Hi, I installed a standalone Delivery Controller and changed VDA port to 88.
But I got messages which looks like error. What’s this mean? Is this error?
C:\Program Files\Citrix\Broker\Service>BrokerService.exe -vdaport 88
Stopping service: CitrixBrokerService
Starting service: CitrixBrokerService
Command completed successfully
The following service endpoints must be identical between the BrokerService.exe.config and HighAvailabilityService.exe.config files but currently differ: ;;;
[Environment]
I have 1 AD server and 1 DDC.
See https://support.citrix.com/article/CTX229493
Hello Carl, I have old agent 7.16 with install pvd feature, i not use it in my MCS deploy, now need update to 1912, Can I update ? Or need uninstall old agent ? I have persist deploy so need do in each vdi. Thanks
I think you will have to uninstall and reinstall since you can’t in-place upgrade PvD.
Thanks, when I reinstall, consider it already VDI deployed, I choose “remotepc” like install type ? or same for master image “master image for mcs deploy” ? thanks very much for your help
“remotepc” option doesn’t include User Profile Management.
Hi Carl,
I have 2 issues and we don’t have an idea how resolve the problem. We use some RemotePC, TC with iGel, desktop. We have a platforme Citrix Cloud.
– Sometimes (3-4 times a day), it’s disconnect from the workspace
– We use VDA 1912
– It have some machine is uregistrered and somes machine registred
On permise, we use the version 7.15 and 1909, we have a similar problem (RemotePC)
I don’t know if it have a bug ou something like that.
Tahnks for help;
Hey Carl! Always appreciate your amazing reads. I have a quick question, is it possible to upgrade just the VDA’s from 7.15 to 1912 without doing any other components first? We are in a time crunch and I need to know if I need to accelerate upgrading the other components or if I can get away with just the VDA’s and do all other components after the fact. Thank you! Best regards, Andy.
Yes. You can upgrade VDAs before you do Controllers.