PvS – Update vDisk

Last Modified: Oct 13, 2017 @ 10:48 am


đź’ˇ = Recently Updated

Updater Device

  1. Create a new Updater Target Device that is only used when you need to update a vDisk. You can create the Updater device manually or you can use the XenDesktop Setup Wizard.
  2. Put the Updater device in a new Device Collection. This is to avoid assigning the device to a Catalog in Studio. Users must not connect to an Updater device while it is powered on.
  3. Set the Updater device to boot from the Maintenance Type. This is used by the Versioning method of updating a vDisk.
  4. When adding the Updater device to Active Directory, be mindful of group policies. Sometimes it is helpful to apply the group policies to the Updater device so they are stored in the vDisk you are updating.
  5. An Updater device can only boot from one vDisk at a time but it can boot from any vDisk. If you need to do updates to multiple vDisks simultaneously, create more Updater devices.
  6. If you are using Enterprise Software Deployment tools (e.g. System Center Configuration Manager) to maintain a vDisk, keep the Updater device constantly booted to a Maintenance version so the ESD tool can push updates to it. This basically requires a separate Updater device for each vDisk.

Update a vDisk – Versioning Method

  1. In the Provisioning Services Console, right-click a Standard Mode vDisk, and click Versions.
  2. In the vDisk Versions window, click New.

    Notice that the Access is set to Maintenance. Click Done.
    If you look at the physical location where the vDisks are stored, you’ll see a new .avhdx file.
  3. Go to the properties of an Updater Target Device, and change the Type to Maintenance. You’ll use this Target Device to update the vDisk. Make sure this Target Device you are using for vDisk Updating is not in any Delivery Group so that users don’t accidentally connect to it when it is powered on.

    Of course this Target Device will need to be configured to use the vDisk you are updating.
  4. Power on the Updater Target Device.
  5. If you did not configure the DWORD registry value HKLM\Software\Citrix\ProvisioningServices\StreamProcess\SkipBootMenu to 1 on the Provisioning Servers, then you’ll see a boot menu.
  6. Login to your Updater Target Device. The Virtual Disk Status icon by the clock should indicate that the vDisk Mode is now Read/Write.
  7. Make any desired changes.
  8. The PvS Image Optimization tool disables Windows Update. To install Windows Updates, use the following script to enable Windows Update, install updates, then disable Windows Update – http://www.xenappblog.com/2013/prepare-a-provisioning-services-vdisk-for-standard-mode/
  9. Before powering off the target device, run your sealing tasks. Run antivirus sealing tasks.
  10. Citrix Blog Post Sealing Steps After Updating a vDisk contains a list of commands to seal an image for Provisioning Services.
  11. Login Base Image Script Framework (BIS-F) automates many sealing tasks. The script is configurable using Group Policy.  💡
  12. Power off the target device so the vDisk is no longer being used.
  13. Go back to the Versions window for the vDisk.
  14. Highlight the version you just updated, and click Promote.
  15. Best practice is to promote it to Test first. Or you can go directly to Production if you’re confident that your updates won’t cause any problems. Note: if you select Immediate, it won’t take effect until the Target Devices are rebooted. For scheduled promotion, the Target Devices must be rebooted after the scheduled date and time.
  16. The Replication icon should have a warning icon on it indicating that you need to copy the files to the other Provisioning Services server.
  17. Only copy the .avhdx and .pvp files. Do not copy the .lok file.

  18. Citrix Blog Post vDisk Replicator Tool has a PowerShell script with a GUI that can replicate vDisks between PvS Sites and between PvS Farms. Version 2.0 at Github supports Intra-site replication.  💡

  19. Then click the Refresh button, and the warning icon should go away.
  20. Boot a Target Device that is set to boot the Test vDisk Type.
  21. Once testing is complete, promote the vDisk version again.
  22. Immediate means it will take effect only after Target Devices are rebooted, whether immediately or later. Scheduled means the Target Device has to be rebooted after the scheduled date and time before it takes effect; if the Target Device has been rebooted before the scheduled date, then the older version is still in effect. Click OK.
  23. If you need to Revert, you can use the Revert button, or the drop-down on top of the window.

Merge Versions

  1. Citrix recommends no more than five .avhd files in the snapshot chain. To collapse the chain of .avhd files, you can Merge the versions. Don’t Merge until the files on both Provisioning Servers are replicated.
  2. You can merge (Merged Updates) multiple .avhdx files into a single new .avhdx file that is linked to the original base file. Or you can merge (Merged Base) the original base, plus all of the .avhdx files into a new base .vhdx file, without any linked .avhdx files.
  3. The Merged Base process creates a whole new .vhdx file that is the same size or larger than the original base. After merging, replicate the merged file to both Provisioning Servers.

  4. Make sure there is no warning icon on the Replication button.
  5. If your merged version is currently in Test mode, then you can promote it to Production.
  6. After merging, you can delete older versions if you don’t need to revert to them.

Citrix CTX207112 Managing Provisioning Services VDisk Versions with VhdUtil Tool: CLI tool that can do the following outside of PvS Console:

  • dump header/footer
  • merge chain
  • rename chain

Expand vDisk VHD

To expand a vDisk file, create a Merged Base. Then use normal VHD expansion tools/methods.

One method is described by Trevor Svienson at How do I expand pvs vdisk with versions? at Citrix Discussions. Steps are: (Commands in fixed width font)

  1. Open cmd or powershell as administrator
  2. diskpart
  3. select vdisk file=“<path to your visk>” (e.g. V:\store\my.vhd)
  4. list vdisk (you should now see your vdisk and the path)
  5. expand vdisk maximum=60000 (This is the size in megabytes of the size you want to extend, so 60000 is 60Gb)
  6. attach vdisk
  7. list disk
  8. list volume (take note of the Volume number of the your vdisk, you should see the old size)
  9. select volume 5 (or whatever volume number from list volume command)
  10. extend
  11. list volume (you should now see the size you want for your disk. This should also be seen in the pvs console)
  12. detach vdisk
  13. exit

Reverse Image – BCDEDIT Method

If you want to upgrade the Provisioning Services Target Device Software on a vDisk, and if your current Target Devices Software installation is 7.6 Update 1 or newer then you can simply install the new Target Device Software. No special steps required. However, if your Target Device software is 7.6 or older then you’ll need to Reverse Image as detailed in this section.

If you want to update the NIC driver (e.g. VMware Tools) then you can’t use the normal vDisk versioning process since NIC interruptions will break the connection between Target Device and vDisk. Instead you must reverse image, which essentially disconnects the vDisk from Provisioning Services.

The traditional method of reverse imaging is to use XenConvert (P2PVS.exe), or similar, to copy a vDisk to a local disk, boot from the local disk, make changes, and then run the Imaging Wizard again to copy the local disk back to a new vDisk.

A faster process is to skip XenConvert, and instead boot directly from the vDisk VHD. Windows 7/2008 R2 and newer can boot directly from VHD files. Windows 8/2012 and newer can boot from VHDX files. All you need to do is copy the vDisk VHD/VHDX to a Windows machine’s local C: drive, run bcdedit to configure booting to the VHD/VHDX, reboot into the VHD/VHDX, make your changes, reboot back into the original Windows OS, copy the VHD/VHDX back to PvS and import it. Details below:

Note: For Windows 7 vDisks, Enterprise Edition is required in the bootable VHD.

Alternative methods of performing Reverse Image:

To boot from vDisk VHD (Microsoft TechNet To add a native-boot VHD to an existing Windows 7 boot menu):

  1. In Provisioning Services Console, if using versioning, create a merged base.
  2. Copy the merged based vDisk (VHD file) to any Windows 7, Windows 2008 R2, or newer virtual machine. If VHDX, you’ll need Windows 8, Windows 2012, or newer.
  3. Run the following command to export the current BCD configuration:
    bcdedit /export c:\bcdbackup

  4. Run the following command to copy the default BCD entry to a new entry. This outputs a GUID that you will need later.
    bcdedit /copy {default} /d "vhd boot (locate)"

  5. Run the following commands to set the new BCD entry to boot from the VHD file. Replace {guid} with the GUID outputted from the previous command. Include the braces.
    bcdedit /set {guid} device vhd=[locate]\MyvDisk.vhd
    bcdedit /set {guid} osdevice vhd=[locate]\MyvDisk.vhd

  6. Make sure you are connected to the console of the virtual machine.
  7. Restart the virtual machine.
  8. When the boot menu appears, select the VHD option.
  9. Login to the virtual machine.
  10. Perform updates:
    1. Uninstall the Provisioning Services Target Device software.
    2. Upgrade VMware Tools.
    3. Reinstall Provisioning Services Target Device software. The Target Device software must be installed after VMware Tools is updated.
  11. When you are done making changes, reboot back into the regular operating system.

  12. Rename the updated VHD file to make it unique.
  13. Copy the updated VHD file to your Provisioning Services Store.
  14. Copy an existing .pvp file and paste it with the same name as your newly updated VHD.

  15. In the Provisioning Services Console, right-click the store, and click Add or Import Existing vDisk.

  16. Click Search.
  17. It should find the new vDisk. Click Add. Click OK.

  18. You can now assign the newly updated vDisk to your Target Devices.

Automatic Scheduled vDisk Update – SCCM

You can use the vDisk Update Management node (and Hosts node) in Provisioning Services Console to schedule an updater machine to power on, receive updates from System Center Configuration Manager, and power off. The new vDisk version can then be automatically promoted to Production, or you can leave it in Maintenance or Test mode and promote it manually.

See the following Citrix links for instructions:

Related Topics

160 thoughts on “PvS – Update vDisk”

  1. Hi Carl,

    is it possible if the Xendesktop get unregistered state because of something wrong with Pvd ?
    My normal xendesktop doesnot show error “the personal vDisk cannot start” after logon.
    but my unregistered xendesktop show it.

    thank you for your answer

    1. I have a really long question, sorry. Running Xenapp 7.6.3000 LTSR. I am needing to update vmware tools on my gold images. I have separate Device Collections for gold images vs deployed vm’s. For example, 1 Device Collection is for Non-Prd Gold Image and a different Device Collection is all the VM’s that boot from that Gold image.

      Anytime I need to update the Gold image, create new Version in Maintemance and simply boot the dedicated VM of that Gold Image and make my changes and then shut it down. I then promote and replicate to the other PVS servers. Reboot VM’s and changes are live. If I look at the Access Mode, it says Standard and it’s grayed out so no changing to Private.

      I guess I still have to create a new VM and make it end up booting the .VHD from my Gold image and uninstalling PVS and update vmware tools and reinstall PVS and re-import back into PVS…..ETC??? I really wanted to use Aaron Silber’s article but alas, I could not change to Private Mode and I am guessing that is why the image would not boot once I changed the NIC to the E1000?

      1. That would be my guess. I usually do the BCDEDIT method of reverse image, which always creates a new vDisk anyways.

  2. I have a question if you want to totally swap out the base vdisk in a collect is there a way to do it via CLI no user the GUI

  3. Hi Carl, i try to update my vdisk with wsus. I created a updater vm and and have configured the vdisk and the Task with this vm. (vdisk Update Management). After starting the Task manually i get about 10 minutes the error: “Failed to connect to the remote Server” . i have configured the Vdisk with the local wsus gpo settings. Do you have any ideas? Thank you, David

  4. Thanks for the info on the bcdedit to update the PVS agent on a vhdx file. I had a case open with Citrix with our PVS deployments to upgrade from 7.9 to 7.12. The install would look like it finished, but then rolled back. Citrix told us to reverse image and it was nothing they could fix. The steps you outlined above worked very well with the upgrade and I was able to deploy the upgraded vhdx file after.

  5. How updating the vDisk affects the persistente write cache on the local disk ? Is the cache still valid after making considerable changes to the vDisk ?

      1. Actually we are still planning. Customer wants streamed Desktop form PVS to retain its OS level state forever (such as an installed App on the C drive). Is that even possible ?

        1. Personal vDisk is an option, but this option has been deprecated.

          If you really need persistent machines, then I much prefer full clones. Full clones are easy to backup/restore and move around. Can’t say the same for other linked clone options.

  6. Hi Carl,
    When in test mode can you create a new image which puts it into maintenance mode then make your change reseal it then promote it to test?
    Does the previous test image also gets move to your 2nd test image?
    Then when happy with the test image, promote to production.
    Will it promote both test images into production?


    1. I believe you can only have one Maintenance, and one Test version per vDisk.

      If this is not sufficient for you, then you might have to stop using versioning and instead do full clones of the vDisks.

  7. Hi Carl

    maybe off topic here but i am wondering if i have two identical image in two sites in the same farm, if i create a new version on one site how to easily migrate that version to the second site? the second site are in full use on base disk but i wanted to add a new version and to be able to switch to that version without disrupting the users that are currently running the base disk, of course they would boot to the new version next time the vm is rebooted.


        1. Hi Carl

          i do not have selection of versions, just the whole vdisks, what will happen to the existing vdisk with the same name on the target site? and also will this impact running Desktops that are using that image?


  8. Dear carl

    Remove the vdisk virtual disk from the pvs console and re-import the vdisk to remind me that the virtual disk manifest file is true or invalid and can not be added to the virtual disk.

  9. Hi … I installed Microsoft Updates in Maintenance-Mode and promoted new version … Now Office 2010 starts a configuration window if the first user starts an office application (e.g. Word) … Once done it is OK for all users – but after restarting the server the first user will get it again (makes sence because the image is locked)

    Now i have to run Office once in maintenance mode to get rid of this configuration message but i know it could cause trouble with my KMS activation (had problems with the masterimage in private mode in the past) – now my question …

    Is it allowed to run Office applications (Word, Excel, etc.) in maintenance mode or will i run into KMS problems? Thx in advance for any helpful comments!

    1. Hi … this article answered my question … it is not allowed in private AND (!) maintenance mode –> http://www.lukecjdavis.com/microsoft-office-pvs-kms-and-duplicate-cmids-and-how-to-fix-it/

      Now my new question: How can i get rid of this configuration message window for the first office-user on the server? … cause must be an office update between 2017/03/25 and and 2017/05/11 … Sure – i could test every single office update and block the initiator … or rearm the image in private mode after starting Word … but maybe there is another trick – i don’t want to waste a rearm-count 🙂

      Thx in advance for any helpful comments!

  10. Hi Carl,
    Quick question, after removing/installing PVS Target Device software on my vhd (2008R2), do I need to re-run the Provisioning Services Imaging Wizard again (in the BCDEdit Method section)?

  11. Hi Guys.. I have been testing the PVS Auto-Update method and just cannot seem to get it working.

    After running the task, the server powers up and connects to SCCM, waits the hour, but then shuts down with the message

    No Updates – No Updates were Pending.
    This is after having 2 Deployment packages assigned to the collection.

    I have followed the steps in :


    Made sure that the image is a Base Image (No a manual update or Base + Updates)
    Have reinstalled the SCCM Agent.
    AD Account is deleted, and Device is removed from PVS

    Using PVS 7.6, on Vmware 5.5

    Anyone had this trouble?

  12. Hi Carl,

    I wanted to ask if this is possible when setting up PVS.

    I am currently running the VMs with Cache Device RAM with overflow on Hard Disk. With PVS is it designed to if my local cache is full does it fail over to File server?

    So the workflow would then be, use Cace Device RAM, Use Local Cache HDD and if this gets full, use File server?

    At the moment, I cant get it to fail to file server when local cache is full and the machine just crashes.


    1. By File server, do you mean some random server you can enter somewhere? Or do you mean “cache to server”, which means cache on the PvS server?

      1. Hi Carl,

        cache to server meaning PvS Server or a File server that you can set up under store properties. When you are setting the store path. Obviously the service account will need to have permissions to do this.

  13. Hi Carl

    i have PVS serup and have updated the VDA version on the Base disk. but i after assigning it to target devices. Users are not able to install any application on there personal desktops, the error is

    “Error opening the file for writing:
    C:\Program Files….”

    Any idea how to resolve this. i see the users are not part of local Admin group on those PCs, is this the reason ?

Leave a Reply