How to run Azure Virtual Desktop on-premises
Published Feb 13 2024 01:51 PM 6,551 Views
Bronze Contributor

Deliver desktop and app virtualization experiences to almost any device, with VMs running where you need them with Azure Virtual Desktop on Azure Stack HCI. This hybrid solution integrates local data centers with Azure cloud workloads through Azure Arc, enabling flexible, secure, and regionally compliant virtualization experiences.


Take advantage of exclusive features like Windows 11 multi-session, previously limited to Windows Server. Maintain precise control over VM hosts’ locations, ensuring compliance and optimizing for ultra-low latency. Benefit from unified security with Microsoft Entra ID and streamlined administration through Azure Arc, for increased flexibility and control. Microsoft Azure MVP, Matt McSpirit shows the steps to get it up and running.


AVD Main pic.jpg



Unified management of your virtual desktops.


Screenshot 2024-02-13 at 4.24.59 PM.png

Manage virtual desktops whether running in the Cloud or locally on Azure Stack HCI. Steps to get started.



Configure an Azure Stack HCI 23H2 cluster.


2- Configure cluster.png

Ensure prerequisites are met and add virtual machine images. See how to get started.



Configure additional options.


Screenshot 2024-02-13 at 4.26.44 PM.png

Enhance Azure Virtual Desktop performance by configuring GPU resources using Windows Admin Center or PowerShell. GPU-enabled VMs provide a boost in frames-per-second for graphic-intensive applications. Check it out.




Watch our video here:




00:00 — Azure Virtual Desktop for Azure Stack HCI
01:21 — Security and management benefits
01:56 — Get it up and running
03:27 — Connect to session hosts using the new Windows App
04:15 — Configure an Azure Stack HCL 23H2 cluster to run Azure Virtual Desktop
06:28 — Deploy session hosts
08:29 — Configure additional options
09:57 — Wrap Up



Link References:

Check out 

Steps for setup at



Unfamiliar with Microsoft Mechanics?

As Microsoft’s official video series for IT, you can watch and share valuable content and demos of current and upcoming tech from the people who build it at Microsoft.



Keep getting this insider knowledge, join us on social:

Video Transcript:

-If you’re looking at modernizing your virtual desktop infrastructure and need to ensure that your VM hosts run in your datacenter or at your specified edge locations, today I’ll show you how with Azure Virtual Desktop running on Azure Stack HCI, which is now generally available and fully-supported. 


-If you’re new to Azure Stack HCI, it’s a hybrid solution running on hyperconverged server infrastructure in your local data center, and via integration with Azure Arc management, it allows you to run select Azure cloud workloads on-premises. 


-And now for the first time, you can run Azure Virtual Desktop on Azure Stack HCI, which lets you deliver desktop and app virtualization experiences to almost any device, with VMs running where you need them. This is a true hybrid solution, spanning your on-prem locations and the cloud. 


-This combined solution means that you can take advantage of exclusive Azure Virtual Desktop capabilities, like Windows 11 and Windows 10 multi-session, a capability otherwise only possible using Windows Server, where more than one user can simultaneously use the same session host. 


-And because you control where you are running your virtual desktops on your local domain right down to a specific local subnet, you can easily meet regional or regulatory data sovereignty needs and optimize for scenarios where ultra-low latency networking is critical. Additionally, there are a number of security and management benefits that come with the native Azure integration. 


-For example, as users log in, Microsoft Entra ID lets you take advantage of a common secure identity including multifactor authentication and Conditional Access. And importantly as an admin, you benefit from consistent infrastructure management with Azure Arc. 


-This lets you use the same tools you would use for other workloads in Azure, such as Azure Policy for consistent configurations, Microsoft Defender for Cloud for improved multicloud security, Update Manager to ensure your VMs remain current, and more. Now, let me show you how you would get this up and running. 


-In my case, I’m in the Azure Portal, and I have a local Azure Stack HCI 23H2 cluster running and connected to Azure, which is one of the prerequisite steps to get everything working. You can follow the steps to do that at Now, if we take a closer look, we can see this cluster consists of two new Dell APEX MC-660 nodes, and is running in a custom location, which in our case, is an on-prem site. 


-Next, we need to set up a host pool in Azure Virtual Desktop. For that, I’m in the Azure Portal where you’ll manage Azure Virtual Desktop services and configurations. So here you can see we have host pools running in the Azure cloud. And importantly, you can see, as denoted with their resource names, there are also host pools running in my own data center on my Azure Stack HCI infrastructure. 


-So, you have a unified management plane in the Azure cloud for your virtual desktops, whether they are running in the Cloud or locally on Azure Stack HCI. And from here, I can manage things like my host pools, application groups, workspaces, and my users, again, all from the Azure Portal. In fact, when I create a new session host, I simply need to define that it’s running in my Azure Stack HCI cluster. 


-And from a deployment perspective, it’s similar to other Azure locations you’d define when you provision virtual desktops in Azure. Once I’ve added all of the necessary configurations for my host pool, the new virtual machines are provisioned through Azure Arc VM management down to my local cluster. 


-And once my session hosts are up and running and added to a workspace, I can connect to them using the new Windows App, which works with Azure Virtual Desktop, and by the way, also works for Windows 365 and Microsoft Dev Box. In fact, one of the benefits of Azure Virtual Desktop compared to other services, is that in addition to full desktops, I can also access my remote apps, and back on the home screen, you’ll see I’ve already pinned a few of those apps. 


-In this case, I’ll connect to my shared Windows 11 multi-session VM running on-prem using the most up-to-date Microsoft-managed VM image with Microsoft 365 apps pre-installed along with my custom apps. And if I look at my network settings in this PowerShell window, you’ll see that it’s on my local subnet, so it’s right next my on-premises databases and file shares. So how do we configure an Azure Stack HCI 23H2 cluster to run Azure Virtual Desktop? Let me show you. 


-So, we’ll start with a freshly-deployed cluster this time, which was set up using the new cloud-based deployment experience. And the good news is that the deployment experience provides all the Azure Arc infrastructure needed, including the Arc Resource Bridge, Custom Location, and other agents and management components. But you can see here that this cluster doesn’t yet meet the remaining prerequisites for Azure Virtual Desktop, which are. 


-The cluster needs to be running 23H2 with related Azure Arc infrastructure. Well, we’ve got that. And you’ll also need to have at least one virtual machine image available in your cluster, which we still need to do. So over on the left hand navigation, I’ll click on VM images, and from there, you can add an image. You have three options to choose from. 


-You can use a local share, you can create and store a new image on the cluster. Or select an existing image from an Azure Storage Account to replicate it down to your cluster. Or from the Azure Marketplace, you can choose a Microsoft-curated image. So I’ll do that to select an image with multi-session support. Then in Basics, I’ll fill in the resource group, the image name, the custom location, in this case, is already populated with my cluster name. 


-In the Image to Download, I can choose from curated and supported images for installing Windows Server, Windows 10, or Windows 11. These will have the latest Cumulative Updates applied and a few with the Microsoft 365 apps pre-installed and optimized for Azure Virtual Desktop, like A/V Redirect for a better Microsoft Teams experience. 


-So I’ll choose this Windows 11 image. And now I can select the storage volume on my cluster where this image will be downloaded to. And from there, I just need to review and create my new image. Now depending on your connection, that will take a few minutes to download. 


-And once it’s complete, here in the VM images blade, you can see the image is available, and is the latest version with no updates available. You can also see I’ve gone ahead and downloaded a Windows Server 2022 Datacenter Azure Edition image that can also be used as a shared session host within Azure Virtual Desktop. Back on the cluster overview page, you’ll see that all prerequisites are now met. It was really that simple. 


-Now from there, you just need to click deploy. And by the way, this is the same flow that’s used for hostpool provisioning directly from the Azure Virtual Desktop experience. After filling in the Basics, resource group and name, in this case, I’m building a testing and validation host pool. Under Virtual Machines, these are the usual options like adding a name prefix, but importantly, you’ll select Azure Stack HCI virtual machine as your VM type. 


-And when you do that, it will expose the Custom location control, where you’ll select your cluster, and I’ll choose the one that corresponds with our new cluster. Once you set that control, it will filter the VM images to the ones available on that cluster. Then, because this is your own cluster, you won’t see the usual Azure VM SKU selection. 


-Instead, you can customize the virtual processor count, memory type, and memory size. The network selection is also filtered to show the available DHCP-based logical networks available on that cluster. Then in the Domain Join options, note that today, you can only choose Active Directory, but soon you’ll also have the option to use Microsoft Entra ID join. 


-Then you’ll fill in your user principal name, your password, then the details for the VM local admin account with username, password, and confirmation. The rest of the tabs are identical to provisioning an Azure Virtual Desktop host pool for the Workspace, along with any advanced configurations, the right tagging, and from there, you can make sure everything looks good. 


-And if I want to templatize this deployment, from here I can view the Azure Resource Manager template, and incorporate that into fully-automated and unattended deployment scenarios. So from there, I’ll go ahead and click Create. And that will deploy your session hosts with everything they need to be managed directly from the Azure Portal like any other Azure-hosted VM. 


-So here you can see my deployed VMs on this cluster, and if we head on over to Azure Virtual Desktop and navigate to Host Pools, then open our newly deployed testing host pool, we can see that our 5 freshly deployed virtual desktops are ready for our team to use. And using Windows Admin Center or PowerShell, you can configure additional options as well, like assigning GPU resources on VMs for specific users. 


-In fact, now I’ll connect to a previously deployed VM with GPU support. So you can see the RDP Shortpath is enabled by going into the remote desktop connection and if you see UDP enabled, that means it’s using RDP Shortpath. To show the GPU is available, I can open up the NVIDIA Control Panel, and I’ll head over to System Information, and you’ll see that this is an NVIDIA A16 GPU that’s been partitioned into four parts, of which one is attached to this VM. 


-So, I’ll close these windows, and to show it working, I’ll open up a WebGL web app with the aquarium sample running. Now, if you’ve used this sample before, you’ll know it maxes out frames-per-second, or FPS, based on the display’s refresh rate, and in my configuration, that’s 30 hertz. But as you add more fish you can stress the GPU, so I’ll add more and more fish. 


-Then as I get up to 25,000 fish it starts to slow down. And at 30,000 fish, it hovers around 26 or 27 frames. Now if I bring in a similar VM without a GPU, notice that at 25 thousand fish, it only runs around 7–9 frames per second, so the GPU VM is three to four times faster even with more fish. 


-So, that was an overview of the new Azure Virtual Desktop for Azure Stack HCI, and its integration with Azure Arc, enabling you to run your virtual desktops precisely where you need them, all managed from the cloud. To learn more, check out And keep watching Microsoft Mechanics for the latest tech updates, and thanks for watching.


Version history
Last update:
‎Feb 13 2024 01:50 PM