Creating custom images

New Contributor

What is the preferred method of creating custom images for WVD? Should we use an unmanged image and store the VHD in a storage account or create a VM with a managed disk and capture if after we run sysprep. If use a managed disk and capture the image, what is the method of updating the master image? Create a new VM from the image, update then re capture? 

9 Replies
best response confirmed by Chris Calaf (New Contributor)

@Chris Calaf


Did you take a look at this documentation? I think it should answer your questions.

I've tried both and both seem to work ok for creating the master image. Updating the image after this though isn't slick though. This will hopefully become irrelevant to a certain extent when msix app attach becomes available.

@Pavithra Thiruvengadam Thank you. I have reviewed the document and decided on the capture approach using the vm from the gallery, customizing it then creating the image using the capture feature. Is there a benefit from using the multi-user version of Windows 10 to create a the VM for WVD even though I never plan on using the multi-user features? 

@Chris Calaf 


You should take a look at Azure Image Builder.

I wrote a blog post about how to use it, you can check it out here:

I'm in the same state...

I'd like to use the second way, but I'm stucked at 'downloading the image'. Where can I find   'windows 10 1909 multiuser' image?


I've tried also to use the 'capture' command from an already deployed WVD, but I dont find a way to put it in right resource group...




@Chris Calaf we actually created a gold image using the recommended capture approach for Azure VMs.  We built out one WVD multi session VM in a host pool, built out our apps, then sysprepped and captured it.  However, we ran into an issue when we deployed with it as we had to uninstall all of the WVD agents and bootloaders on each VM deployed and re-install it with a new token to connect them up to the WVD service.  All is well now.  We uninstalled the agents and bootloader from our gold WVD image and seems to work well now.

@stevenzelenko I'm in the same boat currently, how did you end up fixing your master WVD image? Are there installers somewhere that allow you to reinstall those with a new token?

@Cody Kloepfel yeah.  So uninstall the RD agent and bootloader agent from each VM.  What I would do is to remove the Registration info for all your host pool VMs and then re-install the agents if they aren't connecting.  The cmdlet  I believe is "Remove-RdsRegistrationInfo -TenantName <tenantname> -HostPoolName <HPname>."  Re-install the agents.  You don't necessarily need to create a registration token in WVD.  When asked to enter it just click continue through the installer.  If that doesn't work, then start over and follow this article from the top down.  When I tried to create a registration key, I couldn't get the heartbeat service to connect.  It was only after I removed it and just re-installed the agents without a key that it started talking to the back end service.


Skip the part about creating a host pool as you've already done that.  You can find the agents here as well.  I spoke to a WVD engineer about gold images and they definitely should be removed before it's sys prepped.


Hope this helps you out.  Let me know.

@Chris Calaf Currently, we are using Packer and installing all the apps and configuration using PowerShell.  We don't install the RD agent or boot loader during this process.  This is done with DSC as part of the host deployment.  It works quite well, but currently having a challenge applying FSLogix App Masking rules for Visio/Project to do registry redirection.  It seems you cannot do the 'apply to system' from a command line, during the application installation process (this is being done using ODT)