2023-12-07 UPDATE: This article is from a previous blog I had on a different site. It references older versions of VMware and Citrix. It is here for historical purposes. #
Recently, I was able to resolve an issue that has been bothering me for years. One of the solutions is not one that Citrix has documented, so I thought it was an excellent opportunity for my first blog post as I presume there are others out there who have also encountered this.
VMware 6.5 is the current underlying hypervisor, although all issues discussed below were seen as far back as VMware 5.5. Provisioning Services (PVS) version is 7.15 unless stated otherwise.
Boot Order #
Let us say I want to add another target device in PVS. I fire up the XenDesktop Setup Wizard (XDSW) and create a virtual machine (I use the XDSW because I want the new device added to a Machine Catalog to save extra steps). Now let us say that I want to change the boot order to temporary boot off an ISO rather than the network. I go into the BIOS of my newly created virtual machine and attempt to change the boot order. However, after getting into the BIOS, the boot order is locked. I cannot change anything under the boot order for the machine. So, if I wanted to temporarily boot from an ISO instead of the network, it isn’t happening.
I should note that when manually creating machines from our template, the boot order is changeable as normal. Only when using the PVS wizards is the locking of boot order seen.
Today, I discovered how to fix this issue and the fix is quite simple.
HKLM:\SOFTWARE\Citrix\ProvisioningServices
UseTemplateBootOrder=DWORD:00000001
Setting this value to 1 will keep the hypervisor template boot order and not enforce one from the XDSW. You do not need to restart any services after adding this entry. Just create a new machine and you will find you can modify the boot order as normal.
I have found that this registry key was valid as of PVS version 7.7+ and is documented here: [https://docs.citrix.com/en-us/provisioning/7-7/pvs-new/pvs-fixed-issues.html] ( https://docs.citrix.com/en-us/provisioning/7-7/pvs-new/pvs-fixed-issues.html)
Disk Dependency #
So now that I have the boot order in the BIOS sorted, let’s take look at the write cache drive. When the XDSW is used to create target devices, the write cache disks - and any BDM disks that may be added during creation - all get created as “Independent - Persistent”. However, in my environment it is required that all disks attached to machines be done so as “Dependent”. So, for years now we have had to run a PowerCLI script in VMware after machines are created in PVS to convert all disks from Independent to Dependent. This was cumbersome and added a manual step, which is not desirable in enterprise environments.
Searching various blogs and forums proved fruitless, so I sent an email to our TRM. Not long later, I received a response from our TRM with a possible solution. I tried the proposed solution and it worked!
The fix for this is just as simple as it was to fix the boot order.
HKLM:\SOFTWARE\Citrix\ProvisioningServices
UseTemplateCache=DWORD:00000000
Setting this value to 0 will keep the hypervisor template attached drives, plus anything specified when creating via XDSW. If you only want to have the drive that is attached to your template - as I did because it was set to “Dependent” - simply enter 0 for the size of the Write Cache disk when going through the XDSW.
Setting this value to 1 will only use what is specified via the XDSW, removing any drive that was included with your template.
As with the previous registry setting, no service restarts are required after adding this registry entry. Simply create a new machine and the write cache drives will be set up as you desire.
I do not know when this key was introduced to PVS but can confirm that it works with PVS version 7.15.