A few months ago I wrote a blog about How to deploy Windows Virtual Desktop (Preview) and publish a Full Desktop and the Microsoft Office 365 ProPlus applications. That blog was based on a Windows Virtual Desktop Hostpool deployed with a standard Gallery Image. In this blog I will show you how to deploy a Windows Virtual Desktop Hostpool with a custom Windows 10 multi-user image with your own LOB applications installed on it.
In my next blog I will also show you how to update the master image (custom image), during the creation of the master image in this blog some steps will be taken in the preparation for the future updates.
Before you start, make sure you have your Windows Virtual Desktop (WVD) environment up and running, like described in this blog.
In this blog
This blog covers the following steps
- 1 : Create the Master Virtual Machine
- 2 : Install LOB applications and apply optimizations
- 3 : Prepare the Master VM for the Hostpool deployment
- 4 : Deploy a Windows Virtual Desktop Hostpool with the custom image
- 5 : Test the results
Step 1 : Create the Master Virtual Machine
First we need to create a “Master” virtual machine. With this VM we will create the custom (master) image, and later on, we will use this VM to apply updates on this image.
For the following steps login to the Microsoft Azure Portal.
Click the +Create a resource button and search for Microsoft Windows 10 + Office 365 ProPlus. Select Windows 10 Enterprise for Virtual Desktops Preview + Office 365 ProPlus (latest version) and click Create (if you also want Office 365 in your master image, there is also an image available without Microsoft Office 365).
Select your Subscription and click Create new resource group. I will give this resource group the name WVD-Master. Give this VM a name (in my case also WVD-Master) select your Region and the size of the VM you want to use. Scroll down.
Fill in the username and password details and select any inbound ports if you want to connect to this VM directly via the public internet. Click Next : Disks
Select Standard HDD as OS disk type. Click Advanced and set Use Managed Disk to No. Make sure that a new storage account will be created. Click Next : Networking
Select your Virtual network and Subnet and optionally a Public IP. Click Next : Management
Configure the Management of this VM the way you like. For now I will set everything to No. Click Review + create
Click Create
Step 2 : Install LOB applications and apply optimizations
Logon to the just created Master VM and install your Line Of Business (LOB) applications.
For this blog I have installed Google Chrome, Adobe Reader, Notepad++ and FileZilla. I also installed the latest Windows Updates. After all updates were installed I disabled the Windows Update services and applied some optimizations. In this Microsoft article you can find the settings below and some other settings to keep in mind.
For this blog I have applied the following registry keys. You can also apply these settings via a GPO.
To configure Remote Desktop Session Host – Session Time Limits, run;
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v RemoteAppLogoffTimeLimit /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fResetBroken /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v MaxConnectionTime /t REG_DWORD /d 10800000 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v RemoteAppLogoffTimeLimit /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v MaxDisconnectionTime /t REG_DWORD /d 5000 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v MaxIdleTime /t REG_DWORD /d 10800000 /f
To Set up tome zone redirection, run;
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fEnableTimeZoneRedirection /t REG_DWORD /d 1 /f
To disable Storage Sense, run;
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" /v 01 /t REG_DWORD /d 0 /f
Shutdown the VM after you have installed all the applications and applied all the optimizations.
Step 3 : Prepare the Master VM for the Hostpool deployment
Now it’s time to prepare the WVD Master VM so that the OS disk can be used for a WVD Hostpool deployment. First we need make a snapshot of the disk so we can update the disk later (see my next blog). Or go back to this moment (version) for whatever reason.
Make sure the Master VM is Stopped select the VM and click Stop and Yes to deallocate the VM.
Make sure the Master VM is deallocated before you go to the next step.
Navigate to Resource groups and open the resource group of the Master VM
Open the Storage account
Open the Blob blade and double click vhds
Select the .vhd file and click Create snapshot
Make sure the snapshot is created before going to the next step. This will take a few seconds.
Once the snapshot is created, navigate to Virtual Machines and start the Master VM
Logon to the Master VM open Windows Explorer and run c:\Windows\System32\Sysprep\sysprep.exe
Select Enter System Out-of-Box Experience (OOBE) as System Cleanup Action. Enable/select Generalize and select Shutdown by the Shutdown Options. Click Ok
Once the VM has stopped, deallocate the VM via the Stop button again.
Open the Master VM and go to the Disk blade. Click the OS Disk.
Copy the VHD URI to a Notepad, we need this URL during the Hostpool deployment.
Step 4 : Deploy a Windows Virtual Desktop Hostpool with the custom image
Now that the image is ready for deployment, it is time to create a WVD Hostpool with it.
Within the Microsoft Azure Portal, click the + Create a resource button and search for Windows Virtual Desktop – Provision a host pool
Click Create
Fill in the new Hostpool name, Default desktop users and Subscription. Create a new Resource group (in my case this will be WVD-Desktop, I will also create a Hostpool for the applications). Select your Location and click OK
Select the Usage Profile, Total users and Virtual machine size. Fill in a Virtua machine name prefix (in my case this will be WVD-Desktop). Click OK
Select Blob storage as Image source and past in the imageURI. Select a Disk Type for the new session host(s) and fill in the UPN of the user you can use for the domain joins. Select the Virtual network and subnet (make sure that the domain controllers are reachable from this subnet). Click OK
Leave the Windows Virtual Desktop tenant group name default, fill in the Windows Virtual Desktop tenant name and the user account with the tenant owner rights. If this user has MFA enabled, then use Service principal to deploy the Hostpool. Click OK
Click OK
Select I give Microsoft permission to use and share my contact information so that Microsoft or the Provider can contact me regarding this product and related products and click Create
Step 5 : Test the results
After the deployment of the Hostpool is completed we can start testing if the custom images works fine. For this test all keep it with a published Desktop and I will test it with the Remote Desktop Windows Client.
When login to the Remote Desktop client you see that the Desktop icon is displayed.
And when login to this Desktop, you see that the custom image with all the installed LOB is presented. You can also publish these applications next to the Published Desktop if you like (if you want both the Desktop and de published applications you need to create a second Hostpool).
You can read how to update this custom image in this blog.
I have set up WVD environment. Have deployed apps to remoteapp.
I can launch the app trough the web client but i get logon box. I try to log on with the same credentials, but it does not accept that.
Hi Jorgen, that is strange, if you see the application in your client means that the current user has access to that application. Same password should work, what is the exact error you get? Only password invalid?
great post, I have a question on post management, once the hostpool is created with the custom image it is running fine, however if I want to add a new LOB application then how would I proceed? do I need to create a new deployment?
No you can update your current host pool like described in this blog : https://www.robinhobo.com/how-to-update-a-custom-windows-10-multi-user-image-with-lob-applications-for-windows-virtual-desktop-wvd-preview/
Hi, Robin,
I would be interested to know why you used “Standard HDD” for the WVD master and not a managed disk? Does this have anything to do with creating the snapshots? Isn’t that so nice with managed disk?
Yes, that’s the reason.
It’s possible to use a managed disk > Create snapshot > Sysprep > Create managed imaged from snapshot > Select Managed Image when deploying or updating the hostpool.
When updating the master VM > Create managed disk from snapshot > Swap disk of master (which was sysprepped) to new managed disk with snapshot (using GUI)
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource
Hi,
Any experience with thin clients and wvd? in particular the user that subscribes in the remote desktop application needs to log off so another user can login can’t seem to find any way to get this done.
Can I use the image “Windows 10 Enterprise multi-session + Office 365 ProPlus” when I create a VM that will be captured for WVD template?
Yes you can!
I’m wondering when is best to install the Windows Virtual Desktop Agent? I’m assuming as part of the build above?
thanks for the great post btw.
Hey Dave. The WVD Agent will install itself automatically when using the “Create a resource – Windows Virtual Desktop – Provision a host pool” option in the Azure portal.
You could also manually install or install it via PowerShell if you are just deploying a stand alone VM that you want to add to a host pool. You do not want this agent installed on your golden image though as it can cause issues with the host pool.
Hi Robin, first off, thank you so much for your posts, they have helped me immensely. Even though I am a novice, your blogs are very easy to follow and execute.
Just some feedback. I understand you are not from the US, but something to think about – we have stopped using the nomenclature of “master” and replaced it with gold or reference image. Yes, I understand folks should have thicker skin, but I also see the point. Again, I am sure this means nothing in NL. But thought you should be aware of that if speaking to folks in the US who may be sensitive to that. Prost! Joe
Hi Joe, thanks for your feedback! Totally not aware of that, and it’s what you say. Here in the Netherlands we use the term “master” the same way as “golden disk” (other word for). Good to know and thanks for mention it.