Don’t disable the LPT port in the BIOS of VMware virtual machines if you used XenDesktop MCS with PVD.
Like you I have been really excited about PVD in XenDesktop 5.6. I think that controlling the space in the PVD is the magic. But with new deployments, comes new problems. Over the past few weeks I have been working on an issue with VDI sessions not completing the provisioning process. I was fortunate to get some time with Ringcube and Citrix engineers to work out this issue.
Here is the issue – I’m using Xendesktop 5.6 MCS (machine creation services) and vSphere 5 u1 for my hosts. The VM’s provision just fine, but are stuck in a “preparing” state. That tells me the VDA is not communicating with the DDCs. Looking at one of my provisioned desktops, I have to log on as a local admin. The AD account is correctly assigned to the VM, so that is not the problem. After first logging in, I notice that the NIC shows disconnected. Also looking in the device manager, everything is gone! How can the device manager be blank? One work around I found was to log into the provisioned VM in “safe mode with networking”, after a reboot everything seems to work correctly. This was not a great solution if I have hundreds or thousands of VM’s deployed in Citrix.
We narrowed down the registry key that was giving us the issue during the provisioning process. It was HKEYLM-System-CurrentControlSet-Enum-LPTENUM.
It was coming down to a device driver that would not load properly because it was missing from the base VM. This LPTENUM reg key was empty in my base VM. I began to step backwards and think about any customization I did on my base VM. One thing I always do before a VM is built is configure the BIOS to disable floppy drives and LPT ports. Why? I disabled anything that may cause unneeded CPU cycles on the vSphere hosts.
The disabled LTP port in the BIOS is what was causing the issue. The LPT port corresponds to the Windows registry entry mentioned above. I was able to disable the floppy controllers with no problem. I also had to remove “name=%SYSTEMROOT%system32catroot2” from C:ProgramDataCitrixpersonal vDiskconfigfolder_rules.txt.
One other thing you will notice when provisioning machines is that the VMware properties of virtual machines do not get replicated to new machines. Settings like “hot add” or “vmware tools upgrade” do not get replicated to provisioned virtual machines. This is also true for BIOS settings, everything is set to default in newly provisioned VMs. So be careful when building your base virtual machines for Citrix MCS with personal virtual disks.