CVAD 1912 UPL removal issues and fix

I noted some interesting (annoying?) unexpected behavior with UPL-enabled CVAD 1912 MCS master image machines over the weekend when I should have been playing DOOM ETERNAL

At my current client, we un-installed CVAD 1912 to remove the UPL components. We did this for two reasons
1 – A default install of CVAD 1912 w UPL will create a dependency for AppV on the UPL filter driver.
The environment I’m working in has a mix of Nutanix blades (G4/G5/G6). Those VMs that get booted from the older G4 blades take longer to boot, and note a race condition where the UPL service fails to start, thus causing the AppV filter driver to fail to start
2 – We’re unable to get away from the legacy path imposed on via the Citrix UPL filter driver policy that sets that ridiculous A_OK sub-folder. We want to use Nutanix files with multi-path support, so all 3 servers in the cluster distribute the load, this isn’t possible with the hard-coded A_OK sub-folder nonsense
Anyway, over the weekend I started the process to remove CVAD 1912 + UPL on our various MCS master images
I completed the removal in our test environment, and upon rolling out the MCS update to a limited set of test machines, noted the following error on user logon over ICAMachine generated alternative text: Windows couldn't connect to the ULayer service.  Please consult your system administrator.  OK

I used Microsoft system internals autoruns to check for anything left on the MCS master image, and sure enough, the VDA un-install left UPL components before. Thanks, QA! :p
To completely remove any trace of UPL from a system where it was previously installed, you would take the following actions:
1 – Run CVAD 1912 uninstall via add/remove programs + reboot
2 – From an elevated command prompt run Sc delete Ulayer
3 – Use PSEXEC -I -s “cmd” then open reged32 to amend permissions on below to include local admin group and
4 – Delete: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ulayer
5 – Delete c:\Program Files\Unidesk
6 – Amend HKLM\Software\Micrsosoft\Windows NT\WinLogon\UserInit to be as below
I found that it was set like this after the un-install
C:\Windows\system32\userinit.exe,C:\Program Files\Unidesk\Layering Services\LayerInfo.exe,
It should be
NOTE: Pay attention to that last character it’s a “,” 
7 – Reboot
8 – Re-install CVAD 1912
The above i’m using on our test environment, and it works fine, for the prod environment, i’m doing a complete windows re-build just to be 100% sure. The above is more anecdotal and interesting from a troubleshooting perspective. 
I escalated a case to Citrix to tell them to fix their un-install for CVAD, but I doubt it will make it into GA for the current release slated for 2003 (March 2020)
I’m not completely ruling out CVAD 1912 UPL at this point! When it works, it’s great, and solves the long-standing issue of delivering apps to non-persistent Win 10 machines

2 thoughts on “CVAD 1912 UPL removal issues and fix

  1. Great! Glad it helped!Citrix confirmed they took my notes for internal use only, so I don't know when the above would make it into a CTX KB (maybe never!)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website at
Get started
%d bloggers like this: