WVD Host Pool Creation Guide with New Template

In this video guide, you are going to see how to create Windows Virtual Desktop WVD host pool using the new template available in the Azure portal.

I have a couple of videos and posts describing end to end WVD (Windows Virtual Desktop) creation process. I also have a WVD FAQ post from AMA which Microsoft WVD team conducted.

✔The new template is available to create Remote Desktop Host Pools
✔The WVD host pool creation template is aligned with other VM creation templates in Azure
✔New WVD Host Pool creation template is more optimized and faster than the previous template

WVD Posts

I have multiple posts to help you to understand what is Microsoft WVD and what is the future roadmap of WVD etc.. Also, I have a couple of video guides to help you to setup end to end WVD infra from the cloud.

Create WVD Tenant and WVD Infra

WVD End User Experience Access RD Apps RD VMS


Let’s look into the new template and what are the advantages of using the new template. First of all, if you’re looking at the old videos and checking for the old template, it’s not available at the moment. In the Azure portal, only the new template is available.

You have to use the new Azure template to create WVD host pool. And the new WVD template seems to be quicker and faster than the previous one. And the new template is more efficient, or it’s aligned to the existing VM creation templates.

I think this would be very useful for automation of WVD host pull creation using Terraform or some other automation tool.

Creation of WVD Host Pool with New Template   

It’s a straightforward process log into the Azure portal with appropriate access do the subscription on which you are trying to build the whole spool.

  • Once you log into the portal, you can click on + Create A Resource symbol and search for windows virtual desktop host pool. this will bring you the host pool creation template.
  • Click on that WVD Host Pool Creation template and go through the wizard.
  • You need to select an Azure subscription
  • You need to create a Resource Pool for each host pool
  • You can’t use the existing resource pool to create a new host pool
  • You need to select whether you want a pooled host pool or a personal one
  • You can also assign a user to that host pool
  • Click on next to continue and now in the next page why do you can see is the VM template or virtual mission template. In this example, I have created a VM from a D template which is high end (I think).
  • You can select how many VMS you want to create in that particular host pool one, two, or three, depending on your scenario.
  • In the next screen, you have to endure the domain join account UPN.

NOTE – So if you are using on Prem domain controller or Active Directory through a VPN channel, then use your on Prem UPN if that is different from the cloud UPN.

Example – For example if your cloud UPN is @howtomanagedevices.com and you are on Prem Active Directory UPN is @howtomanagedevices.intra. In this scenario, you need to use .intra UPN when you specify domain join account UPN.

  • On the last screen/page you need to specify the service principal or service account (an on-prem word) which you already created in your Azure Active Directory to complete the WVD host pool creation process.
  • Once you click next, you would be able to see the validation process is going on. This is a process before the WVD host pool creation.
  • Once the validation is completed, the WVD host pool creation process will kick start.

I see the new process of creating WVD host pool takes around 10 to 15 minutes for one VM if it’s like 15 or 20 VMs it is going to take more time (of course).

PowerShell Command to Add Users to WVD Host Pool

Let’s see some of the PowerShell commands to add users to WVD host pool. You can also see the list of users assigned to a particular horse pool or an application group from below.

## Add Users to Host Pool
##Login to your Azure Subscription
Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com 

##Set Variables
$tenant = 'WVDPOC'
$NameofappGroup='LOB Apps'

## Check whether the Host pool is created or not under the corrent WVD Tenant
Get-RdsHostPool -TenantName $tenant
Get-RdsHostPool -TenantName $tenant -HostPoolName $hostpoolname
Get-RdsSessionHost -TenantName $tenant -HostPoolName $hostpoolname

## Add Users to WVD Host Pool (App Group Name =  Desktop Application Group)
Add-RdsAppGroupUser -TenantName  $tenant -HostPoolName $hostpoolname -AppGroupName “Desktop Application Group” -userPrincipalName $UserPrincipalName

## Check whether the user is added to Desktop Application Group or not
Get-RdsAppGroupUser -TenantName $tenant -hostpoolname $hostpoolname -appgroupname "Desktop Application Group"

WVD Host Pool Creation Tasks

The following steps are for a WVD host pool creation with one VM (on very high-level).

  • AvailabilitySet Creation Task
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Resources/deployments/rds.wvd-provision-host-pool-20190925703029/operations/67B86CC0767D68862",
"operationId": "67B86CC0C5D68862"
"properties": {
"provisioningOperation": "Create",
"provisioningState": "Succeeded",
"timestamp": "2019-09-26T09:35:40.4659336Z",
"duration": "PT10.8587763S",
"trackingId": "c5e3e6b0-00d9-442e-a9c2-92298b34ff",
"statusCode": "OK",
"targetResource": {
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Compute/availabilitySets/WVD-A-Fast-availabilitySet",
"resourceType": "Microsoft.Compute/availabilitySets",
"resourceName": "WVD-A-Fast-availabilitySet"
  • VM Creation Task
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Resources/deployments/rds.wvd-provision-host-pool-201906736103029/operations/33B3EF46471C003B59",
"operationId": "33B3EF7C1C003B59",
"properties": {
"provisioningOperation": "Create",
"provisioningState": "Succeeded",
"timestamp": "2019-09-26T09:40:16.7002092Z",
"duration": "PT4M36.1857086S",
"trackingId": "22dda310-71e6-4472-b73b-e81285614cce",
"statusCode": "OK",
"targetResource": {
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Resources/deployments/vmCreation-linkedTemplate",
"resourceType": "Microsoft.Resources/deployments",
"resourceName": "vmCreation-linkedTemplate"
  • WVD VM Domain Join Task
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Resources/deployments/rds.wvd-provision-host-pool-20190926103029/operations/279A544D947401125",
"operationId": "279A544D97501125",
"properties": {
"provisioningOperation": "Create",
"provisioningState": "Succeeded",
"timestamp": "2019-09-26T09:41:09.5890045Z",
"duration": "PT52.8465639S",
"trackingId": "e6fd6ee3-afee-4f72-a936-e1e464e7e5ff",
"statusCode": "OK",
"targetResource": {
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Compute/virtualMachines/WVD-A-Fast-0/extensions/joindomain",
"resourceType": "Microsoft.Compute/virtualMachines/extensions",
"resourceName": "WVD-A-Fast-0/joindomain"
  • Create WVD Host pool with WVD DSC Task
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Resources/deployments/rds.wvd-provision-host-pool-20190926103029/operations/B94B86FCA3470050A3",
"operationId": "B94B86FCA70050A3",
"properties": {
"provisioningOperation": "Create",
"provisioningState": "Succeeded",
"timestamp": "2019-09-26T09:45:42.2018199Z",
"duration": "PT4M32.5818172S",
"trackingId": "79cc3efb-89e4-4170-8781-7b28547b80d6",
"statusCode": "OK",
"targetResource": {
"id": "/subscriptions//resourceGroups/WVD-A-Fast/providers/Microsoft.Compute/virtualMachines/WVD-A-Fast-0/extensions/dscextension",
"resourceType": "Microsoft.Compute/virtualMachines/extensions",
"resourceName": "WVD-A-Fast-0/dscextension"


Categories WVD

Leave a Comment