Provisioning Server: Exporting vDisk fails


Provisioning Server is one of those workhorse products that works well day in and day out and then it doesn’t. There’s so many things that can go wrong for a number of reasons. This post covers a simple fix for when you can’t export a vDisk.


There is a Mac/PC debate among Citrix engineers on whether MCS (Machine Creation Services) or PVS (Provisioning Services) is better. This post will NOT engage in this debate because clearly, PVS is better :).

One thing that distinguishes PVS from MCS, is vDisk versioning. With vDisk versions you can isolate updates to a vDisk or allow for quick revisions without affecting and copying a 30-40 GB file every time you want to make a change or update to your vDisk. For each version you can (and should) add notes to the Properties field.


One thing we recently decided as a team was to utilize Bugzilla to track changes to our vDisks. Having a method for tracking changes is essential, especially if you have multiple team members and want everyone on the same page. As you can see above, I like to put a lot of info into the properties so that there’s no question as to what changes the vDisk has. This unfortunately caused an issue recently as I was not able to export the vDisk to our other PVS farm.


When working with vDisk versions, exporting the vDisk is the easiest way to move those versions to another farm.


You can select from what version you wish to export the vDisk and an XML file is generated. You then copy the XML and the AHVDX files to the destination PVS Store. From the destination Store, right-click and select “Add vDisk Versions…” and your vDisk versions are added.


Normally, this works well in our environment, but this time I was not able to export the vDisk. I could bring up the export vDisk dialog and go through the motions, but no XML was generated. It turns out if you have multiple lines in the version description field, the export fails. You don’t get any warning message or event log entry about it either so before you start going down the rabbit hole trying to find a fix. Double-check your properties field and make sure you have everything on one line. I hope Citrix resolves this in an upcoming PVS version, as it seems like a minor thing to fix.



Thanks for reading,

PowerShell: Friday Script Blitz 3



Happy 2018!!! In my current position I’m getting to do a lot of PowerShell scripting. Typically these are quick scripts for maintenance or finding information about our Citrix environment. I’m posting several here to share.

NOTE: These scripts were written against a XenApp 7.9/PVS 7.15 environment


If you have to maintain unique personality strings on your provisioned devices, then this script will help. It spits out all the strings in a PVS farm. I wrote this script due to a requirement with Symantec AV that expects to see a unique hardware ID for servers connecting to it. One way to do this in provisioned environments is with a startup script. See How to prepare Symantec Endpoint Protection clients on virtual disks for use with Citrix Provisioning Server for more info.

Get it from GitHub


The companion script for above. This script will set the Personality String for a PVS Device. It can take an input or generate one automatically. It assumes a 32 character hexadecimal string.

Get it from GitHub

Thanks for reading,


A list of articles/blog posts to review, research, or archive

Thanks for reading,