Skip to content


How to Get the Most From Your Personal Assigned VMs on AVD at the Lowest Cost

Last week I wrote a blog post on how to save on costs while using GPU enabled machines leveraging the AVD service. We had a look at the new NVv4 AMD VM’s driven by the AMD Radeon Instinct MI25 GPUs, which can be split into smaller GPU segments (partitioning) and assigned to individual machines. More specifically, I focused on a multi-user scenario and how the Nerdio auto-scale engine helps in reducing costs over 70% on overage.

Today, I want to spend some time looking at personal assigned (persistent) desktops.

We’ve already discussed some of the options you have using the various GPU’s available (see the above highlighted blog post as well). For the purposes of this article, it doesn’t really matter what type of VM you are using – with or without a GPU.

The main objective? To SAVE on COSTS, while offering flexibility to your end users.  

First Steps

First, we need to create a Workspace (only takes a few seconds), followed by a host pool; a Dynamic one in this case (takes about 10 seconds). Let me know if you would like to find out how that’s done. Here (see image below), you’ll see the various VM’s to choose from, including the NV ADM GPU powered machines as well as the NVIDIA ones (machine types will vary depending on the region you have selected).

Keep an eye on the “Desktop Experience”. Here, we need to select “”Single user desktop (personal/persistent)”, as you can see on the image below as well.

Another thing to note is the “Assignment type”. This can be set to “Automatic” or “Direct”.

  • Automatic: Users are automatically assigned to an available desktop VM upon first login. They can also be manually pre-assigned to desktop VMs.
  • Direct: Before users can log into a personal desktop, they need to be pre-assigned to the VM.

Once you click “OK”, the Dynamic Host Pool will be created and the autoscale configuration page will pop up. See below – click to enlarge.

Let me go over the various items one by one.

End-User Role

At the top, it states “Single-user personal desktop host pools provide each user with a dedicated, permanently assigned host VM. This host VM can be used only by the assigned user. Auto-scaling can be configured to keep desktops on during pre-defined working hours and automatically shut them off outside of those hours. Users can manually turn their desktops on and off using the “End-user” RBAC role.”

This is one of the roles we have built into Nerdio Manager for Enterprise enabling end users to start, stop, and restart their own personal assigned desktops. They will also be able to log-off any active sessions they might have on a personal assigned desktop or when they are part of a hosted shared type hostpool, for example.

I’ll get back to this in a minute.

Working Hours

With the “Working hours” configuration, we set the days and hours that these VMs should be turned on. The settings that follow will help us to further control what and when things happen.

Power Off Aggressiveness

You might remember the “Scale-in aggressiveness” option from the previous blog post where we configured auto-scaling for an hostpool based on a Hosted Shared Desktop model. Well, this comes close to that.

There are three different options to choose from: High, Medium, and Low. Once the workday ends, in this case at 6 p.m. UTC+01:00, the selected power off aggressiveness will be applied. This in combination with the “Power off timing” setting – see below.

  • High: Power off all desktop VMs, including those with active and disconnected sessions. Users with active sessions will be sent a message (see 2 “Messaging” on the image above) and given time to log out before the VM is powered off.
  • Medium: Power off only those desktop VMs that do not have an active user session, including those with disconnected sessions.
  • Low: Only power off those desktop VMs that have no active or disconnected sessions.

Power On Timing

Here, we can configure if VMs need to be powered on once, after the start of a workday, or continuously.

  • Once: All desktop VMs will be powered on ONCE at the start of working hours. If a VM is powered off (manually by a user, for example) after the start of working hours, it will NOT be automatically powered back on by auto-scale.
  • Continuously: All desktops VMs will be powered on at the start of working hours. For the duration of working hours auto-scale will automatically power on any manually powered off desktop VMs.

Power Off Timing

Powering off machines happens in conjunction with the earlier mentioned “Power off aggressiveness” setting.

  • Once: At the end of working hours all desktop VMs will be powered off (subject to aggressiveness setting above). If any desktop VMs are manually powered on outside of working hours, auto-scale will NOT automatically power them off.
  • Continuously: At the end of working hours, all desktop VMs will be powered off (subject to aggressiveness setting above). If any desktop VMs are manually powered on outside of working hours (by use of the earlier highlighted end-user role, for example), auto-scale WILL automatically power them off (subject to aggressiveness setting above).


Before a machine is scaled-in/powered off, once or continuously you can configure the auto-scale engine to send the user a message telling him or her to log off and save their work because the machine will be shut down after 10, 15, 30, 45, or 60 minutes from then on. Do note that messaging only applies to configurations where the “Power off aggressiveness” is set to high, since medium and low will not power off any machines with active sessions on it.

End-User Role

I already highlighted this built-in role a few paragraphs back. Again, when a user has this role assigned, he or she will be able to log into the Nerdio Manager for Enterprise console and start, stop, and restart their own personal assigned machine(s). Logging of any personal active sessions they might have is optional as well. See image below for an example of this – click to enlarge.

If we combine the end-user role with the various “Power off timing” options, together with the different “Power off aggressiveness” settings, we can prepare for just about any use-case you can think of – considering both cost savings as well as the overall UX.

For example, let’s assume that the “Power off timing” is set to continuously and the “Power off aggressiveness” is set to medium or low. At the end of the workday, when a user session is in a disconnected or inactive state, or when there is no user sessions at all the VM will be shut down.

However, if later that night a user powers on his or her machine by means of the end-user role, as long as the user session stays in an active state the machine won’t be powered off. Eventually, even if the user forgets to logoff (depending on session idle times and disconnect policies), the machine will be shut down.

 In other words, you can mix and match.

Cost Savings

As you can probably imagine, all of these different options combined will lead up to some impressive cost savings when compared to running these machines 24 X 7, or when depended on a less intelligent way of (auto) scaling and power management.

Also, putting your users in (full) control without any additional measures in place is a questionable approach. They’ll forget to logoff, shutdown their machines, keep it running for hours while doing something else, you name it. All very human like behavior and it applies to all of us, it’s just not very economical.

Costs Saving History

As with any other type of Dynamic host pool based on a Hosted Shared Desktop model, or Published applications, for example, we can also view our costs saving for personal assigned (persistent) desktops. Below is an example. Here the cost savings are relatively low since we only have two machines in the host pool, and it is a demo environment. However, in a real-world production scenario this will lead to hundreds, if not thousands of dollars in savings per week/month.


Whether you make use of GPU-enabled machines or not, the above-mentioned provisioning and autoscaling options will benefit you either way.

These options together with the way Nerdio makes image, and overall management tasks as easy as they possible can be make Nerdio Manager for Enterprise an extremely efficient platform, allowing you to operate and manage AVD on a daily basis, no matter what type of technical IT background or level of expertise you might have.

Learn more about Nerdio Manager for Enterprise now – start your free 30-day trial.

Bas van Kaam

Nerdio Field CTO, EMEA/UK


Multi-Cloud and On-Premises Deployment with Azure Stack HCI (Coming Soon)

Deploy Azure Virtual Desktop in Azure and extend the session host VM placement to on-premises and other cloud using Azure Stack HCI. Nerdio Manager automates deployment of session hosts, AVD agent installation, and full integration into the AVD deployment in Azure.

Create a brand new Azure Virtual Desktop environment or allow Nerdio Manager to discover an existing deployment, connecting to existing resources, and manage them.

Deploy Nerdio Manager from Azure Marketplace and configure a new AVD environment with an easy to follow, step-by-step configuration wizard. First group of users can access their AVD desktop in less than 2 hours.

Service providers, system integrators, and consultants can leverage Nerdio Manager’s scripted AVD deployment template. Create complete environments with desktop images, host pools, and auto-scaling in minutes.

Create and manage AVD environments that span Azure regions and subscriptions. Quickly link Vnets and resource groups and manage AVD deployments world-wide from unified portal.

Link multiple Azure tenants under the same Nerdio Manager instance and manage AVD deployments that span Azure AD tenants. User identities and session host VMs can run in separate tenants for maximum flexibilty and security.

Deploy and manage AVD environments that span across sovereign Azure Clouds. Cross-sovereign cloud support allows identity (e.g. users and groups) to be in one Azure Cloud, while session host VMs are in another Azure Cloud.

Management of workspaces, host pools, app groups, RemoteApps & custom RDP settings

Administer every aspect of AVD with Nerdio Manager including workspaces, host pools, application groups, RemoteApp publishing, RDP properties, session time limits, FSLogix, and much, much more. Every Azure service that AVD relies on can be managed with Nerdio Manager.

Deploy and manage AVD session host VMs. Hosts can be created manually or with auto-scaling, deleted on-demand or on a schedule, re-imaged to apply updates, run a scripted action, resized, put into or taken out of drain mode, and more.

Manage user sessions across the entire AVD environment, within a workspace, host pool or on a single host. Monitor session status, disconnect or log off the user, shadow or remote control to provide support, or send user an on-screen message.

End users have the ability to log into Nerdio Manager with their Azure AD credentials and manage their own session, restart their desktop VM, or start a session host if none are started in a host pool. (Ability to resize and re-image own desktop is coming soon.)

Create, link, and manage Azure Files shares including AD domain join. Synchronize Azure Files permissions with host pools, configure quotas, and enable SMB multi-channel. Manage file lock handles and configure Azure Files auto-scaling to increase quota as needed.

Create, link, and manage Azure NetApp Files accounts, capacity pools and volumes. Configure provisioned volume size, monitor usage, and use auto-scaling to automatically adjust volume and capacity pool size to accommodate the needed capacity and latency requirements.

FSLogix configuration can be complex and overwheling, but not with Nerdio Manager. Create one or more FSLogix profiles with all the needed options, point at one or more Azure Files, Azure NetApp Files, or server locations and select from VHDLocations, CloudCache and Azure Blob storage modes.

Multiple identity source profiles can be set up and used automatically on different host pools. Active Directory, Azure AD DS, and Native Azure AD are all supported. Choose the appropriate directory profile when adding a host pool and all VMs will automatically join this directory when being created.

Create a copy of a host pool with all of its settings: auto-scale config, app groups and RemoteApps, MSIX AppAttach, user/group assignments, VM deployment settings, etc. Save time by creating host pool “templates” that can be cloned to any Workspace, Azure region or subscription instead of starting from scratch.

Apply user session time limits at host pool level. Automatically log off disconnected sessions, limit the duration of idle sessions, control empty RemoteApp session behavior and more.

Assign Azure AD users to personal desktops to ensure the user will log into a pre-configured VM. Un-assign personal desktops from users who leave the organization and re-use these VMs for new users.

Pre-configure custom Azure tags for all Azure resources associated with each host pool. Tags can be used for charge-back and cost allocation by host pool.

When creating session hosts using NV-series VMs NVIDIA and AMD GPU drivers are automatically installed.

Move existing host pools from Fall 2019 (Classic) object model to Spring 2020 (ARM) object model. Choose to whether to move or copy user assignments. Existing session hosts are automatically migrated or new ones can be created in the ARM host pool.

Automatically enable and configure AVD integration with Azure monitor. Zero configuration required. Azure Monitor Insights for AVD can be used instead of or in conjunction with Sepago Monitor.

AVD personal desktops to Windows 365 Cloud PC migration (Coming Soon)

Migrate users from AVD personal desktops to Windows 365 Enterprise Cloud PCs using an existing image and user assignment. (Coming soon)


Cloud PC License Usage Optimization (Coming Soon)

Cloud PC device lifecycle management

Cloud PC user group assignment

Intune primary user management on Cloud PCs

Migrate AVD personal desktops to Cloud PCs (Coming Soon)

Get Certified