Unlocking Efficiency with Auto-Scale Profiles in Nerdio Manager for Enterprise, part 1
User-Driven (Personal)
Managing virtual desktops in an Azure Virtual Desktop environment at scale doesn’t have to be a chore.
With Nerdio you can optimize resource allocation, improve user experience, and automate lifecycle operations with precision.
Nerdio Manager for Enterprise offer 3 different autoscale profiles for Azure Virtual Desktop VM´s based on your specific needs, filling the gap from native functionality available in Azure.
These are:
- User-driven (Personal desktops)
- Schedule-based (Personal desktops)
- Shared (Multi-User desktops)
In this post I will cover the individual settings for a User-Driven Autoscale profile.
For information regarding other profiles, click the corresponding links above (will be availible shortly).

Lets dive in to the different otpions we have and what they do! (To go straight to a specific section, click the corresponding link below)
HOST POOL PROPERTIES
DESKTOP START AND STOP
PRE-STAGE HOSTS
PRE-STAGE HOST OS DISKS
AUTO-GROW
AUTO-SHRINK
AUTO-HEAL BROKEN HOSTS
Host Pool Properties

Start VM on connect – When enabled, stopped VMs will be automatically started when users attempt to connect
Desktop Start and Stop

Desktops are started when users connect.
- Desktops are stopped after [specified time]
By enabling this you can choose when the desktops are to be stopped. Availible options are 10 min, 20min , 30 min, 1 hour, 2 hours, 8 hours,1 day or 2 days.
Regular desktops will be automatically shut down only if there are no active or disconnected sessions.
Hibernation-enabled desktops will be placed in hibernation after the specified time period, but users will not be forcibly logged off.
To automatically log off disconnected users after a certain time, use user session limits settings on the host pool properties page.
- Bypass drain mode for desktops in this pool – When selected, desktops will not enter drain mode before shutdown, effectively forcibly shut down VMs after specified time regardless of users are active or not
Pre-Stage Hosts

Settings configured in this section takes precedence on other user-driven configurations
- Include hosts without assigned user – If this option is selected, unassigned desktops will also be started during the auto-scale process. This may be useful for organizations wishing to perform scheduled tasks against desktops during the working day
- It is possible to set one or multiple schedules to define how hosts will be started during specific days of the week
By setting a scale in-delay, you will override the *Desktop stopped* setting configured in this profile for specific time set.
Pre-Stage Host OS Disks

Ensures that all OS disks of stopped VMs are converted to the “running” disk type before users connect in the morning and converted back to “stopped” disk type after users log off for the day.
While the need for a high performance disk while the VM is running, there are often great savings to achieve if the disk is swapped to a lower tier when the host is shut down.
When this setting is enabled, all ‘disk type differs from policy’ warnings will be hidden for this pool.
- Set a Schedule when this is to be executed
- Leave Desktops that are not assigned to a user with STOPPED OS disk type
When selected, desktop VMs that are unassigned to a user will not have the OS disk converted from STOPPED to RUNNING. - Use intelligent disk pre-staging for users [Beta]
Intelligent disk prestaging learns user behavior and automatically adjusts the disk prestage times. This feature requires AVD insights to be enabled and configured for the host pool.- Enabling this lets you choose between Hybrid and Automated Mode
- Hybrid mode – Disks will always be pre-staged based on the defined schedule. The behavior of users who’s work pattern differs will be learned, and additional staging activity will be scheduled. This function is designed as ‘learning mode’, with the benefits of both the standard pre-stage functionality and learned requirements
- Automated Mode – Disks are pre-staged for existing users only according to the learned schedule. New users will respect the defined schedule until Intelligent prestaging has enough data to automate this process. Disks will be pre-staged 30 minutes before anticipated user logon events
- Enabling this lets you choose between Hybrid and Automated Mode
Auto-Grow

Automatically add desktop to the host pool when the number of unassigned desktops remaining falls below a specified threshold.
- Add a new host when the number of available (not assigned to a user) falls below a specific number of avilible desktops or % of total desktops.
Auto-Shrink

Automatically remove desktops that haven’t been used in a long time.
- Delete the VM if the users hasn´t logged in for a specific number of days
- Desktop will be set to “Pending deletion” state and deleted after a specified time choosen.
Desktop is set to “Pending deletion” state by the auto-scale process by adding a tag to the VM.
A task will be logged during this process, which can be used for admin notification of a desktop entering “Pending deletion” state. There will also be notification banners in the Nerdio Manager UI indicating that a personal host pool has VMs that are pending deletion. After the “pending deletion” period expires (default: 24 hours) the VM will be permanently deleted. - Exclude Groups or individual users – Enable this option to exclude specified security groups or users from auto-shrink. Desktops assigned to users listed here will not be automatically removed even after prolonged time of inactivity.
- Exclude unassigned desktops – Desktops which have not been assigned to a user will not participate in shrink operations. Use this setting in combination with Auto Grow to maintain a buffer of free unassigned desktops.
- Scripted actions to run when a host is scheduled to shrink – These scripted actions will run after the VM is marked for auto-shrink. These scripts can be Nerdio provided Powershell scripts and runbooks or scripts you have added to Nerdio Manager by linking a GitHub- or Azure Devops repository.
- Notify users of scheduled deletion – Notify the user via email about deletion of their desktop as soon as the inactivity period is exceeded. Notifications on SETTINGS > Nerdio environment page must be enabled for this feature to work.
- Message Subject – Specify a custom message subject line. Maximum 255 characters, variables are not supported.
- Message Text – Configure a custom Auto-shrink message for users.
The below variables are available for use in the message body:
%HOSTPOOL% – returns the name of the affected hostpool
%HOSTNAME% – returns the specific host name
%HOST_IDLE_DAYS% – returns the current number of idle days
%HOST_IDLE_DAYS_THRESHOLD% – returns the configured maximum idle days before Auto shrink is started
%SHRINK_TIME_UTC% – returns the exact time in UTC when the shrink task will occur
%SHRINK_DATE% – returns the exact date that the shrink task will occur
%SHRINK_DATE_EUR% – returns the exact date that the shrink task will occur in DD/MM/YYYY format
%FRIENDLY_WORKSPACE_NAME% – returns the friendly workspace name
%FRIENDLY_HOSTPOOL_NAME% – returns the friendly hostpool name
%USER_NAME% – returns the assigned user display name
%IMAGE_NAME% – returns the Azure API ‘Name’ for the desktop image
%VM_SKU% – returns the Azure API ‘Name’ for the VM size
%DISK_SKU% – returns the Azure API ‘Name’ for the OS disk
- Message Subject – Specify a custom message subject line. Maximum 255 characters, variables are not supported.
- Notify an additional email recipient when desktops are scheduled to be deleted
Specify the email address of an additional user or distribution group to alert when the inactivity period of desktops in this pool has been exceeded. Notifications on SETTINGS > Nerdio environment page must be enabled for this feature to work.
- Message Subject – Specify a custom message subject line. Maximum 255 characters, variables are not supported
- Message Text: Configure a custom Auto-shrink message for users.
The below variables are available for use in the message body:
%HOSTPOOL% – returns the name of the affected hostpool
%HOSTNAME% – returns the specific host name
%HOST_IDLE_DAYS% – returns the current number of idle days
%HOST_IDLE_DAYS_THRESHOLD% – returns the configured maximum idle days before Auto shrink is started
%SHRINK_TIME_UTC% – returns the exact time in UTC when the shrink task will occur
%SHRINK_DATE% – returns the exact date that the shrink task will occur
%SHRINK_DATE_EUR% – returns the exact date that the shrink task will occur in DD/MM/YYYY format
%FRIENDLY_WORKSPACE_NAME% – returns the friendly workspace name
%FRIENDLY_HOSTPOOL_NAME% – returns the friendly hostpool name
%USER_NAME% – returns the assigned user display name
%IMAGE_NAME% – returns the Azure API ‘Name’ for the desktop image
%VM_SKU% – returns the Azure API ‘Name’ for the VM size
%DISK_SKU% – returns the Azure API ‘Name’ for the OS disk
- Message Subject – Specify a custom message subject line. Maximum 255 characters, variables are not supported
- Send notification emails to
Enter email address(es) to desired recipients. - Send notifications from
Choose what email that should be the sender (Mailbox needs to be linked in Settings – Environment – Nerdio – Email and webhook notications) - Notifications frequency
Select the frequency at which reminder emails will be sent to the user. A final email will always be sent 1 day before the scheduled deletion. (Choose between Every 24 hours, Every 3 days, Every 5 days, Every 1 week or Every 2 weeks)
Auto-Heal Broken Hosts

Auto-scale can automatically attempt to repair “broken” session hosts by restarting them or running scripted actions (e.g. re-install AVD agent).
The AVD status is reported to the AVD service by the agent installed on the session host VM. If something is wrong, the status will be something other than “Available”. Not every status other than “Available” means that there is a problem.
The auto-heal operations will run when all scale out activity is complete and the system is in otherwise steady-state.
Hosts with active sessions may still be somewhat functional and such hosts will not be treated as broken. You have the choice to include these as well when triggering an attempt to repair.
- Host is broken if AVD agent status is (You can choose one or more triggers of)
- Unavailible
- Shutdown
- Disconnected
- Upgrading
- Upgrade failed
- No heartbeat
- Not joined to domain
- Domain trust relationship lost
- SxS stack listener not ready
- FSLogix not healthy
- Needs assistance
- Stale heartbeat (>2hrs)
AND - Has no active sessions
- Even has active sessions
- Minutes before first action
Minutes to wait after host is detected to be broken before running first recovery action - Recovery actions
Select one or more recovery actions to run if a host is detected to be broken. The first recovery action will run after the number of minutes specified above and the system will wait the number of minutes specified below between recovery actions. Once the host exists the broken state (as defined above) subsequent recovery actions will not be executed. Recovery actions that are visible here are Powershell scripts and runbooks provided by Nerdio and scripts you have added to Nerdio Manager by linking a GitHub- or Azure Devops repository - Minutes between recovery actions
Number of minutes to wait after each recovery action before running the next one. Once host leaves its broken state (i.e it´s fixed) subsequent recovery actions will not run.
Final Thoughts:
With these comprehensive auto-scale capabilities, IT admins can fine-tune every aspect of desktop behavior—from launch to retirement—while Nerdio Manager handles the automation in the background. Whether you’re optimizing performance, conserving resources, or improving user satisfaction, these tools offer the balance between control and simplicity that modern IT demands
Stay tuned for my next article which will dicve into Schedule-based autoscaling for personal desktops.
