Skip to main content

GUIDE

RDS to AVD transition guide: a practical starter kit

Introduction

As organizations modernize their IT
infrastructure, many are moving
away from traditional Remote Desktop
Services (RDS) environments and
toward more scalable, secure, and
cloud-native solutions like Azure
Virtual Desktop (AVD).

This walkthrough provides a practical roadmap for IT teams, particularly MSPs and enterprise infrastructure engineers, who are planning or piloting a move from RDS to AVD. It focuses on the technical steps and considerations you need to design, build, and operate a clean AVD environment.

1. Why are organizations moving from RDS to Azure Virtual Desktop + Nerdio?

Several key factors are driving organizations to modernize from traditional RDS environments to Azure Virtual Desktop with Nerdio:

  1. Cost efficiency: AVD offers lower licensing costs, flexible scaling, and pay-as-you-go models that reduce total cost of ownership compared to traditional RDS setups that require expensive CALs and fixed infrastructure.
  2. Integration with the Microsoft ecosystem: AVD is a Microsoft product that seamlessly integrates with other Microsoft services, such as Entra ID, Microsoft 365, and security tools, providing a more cohesive experience.
  3. Simplified management: Nerdio enhances AVD by offering powerful management tools that simplify deployment, scaling, and optimization of virtual desktops, making it easier to manage than RDS.
  4. Scalability and flexibility: AVD allows organizations to right-size compute and storage in real time, automatically scaling resources up or down as needed. Traditional RDS environments cannot do this natively.
  5. Performance and user experience: AVD, leveraging Microsoft’s global Azure infrastructure, offers robust performance and reliability, often outperforming legacy RDS deployments.

2. Licensing differences between RDS and Azure Virtual Desktop + Nerdio

1. RDS licensing

RDS licensing traditionally requires both a Windows Server license and a Remote Desktop Services Client Access license (RDS CAL) for each user or device. These licenses are perpetual and must be purchased up front. Additional licensing complexities include:

  • Licensing per user or per device, which can lead to over-licensing or under-utilization.
  • Server OS and infrastructure costs, including both licensing and hardware.
  • Management overhead associated with license tracking and compliance.

In addition to licensing, RDS environments typically require multiple server roles to function properly. These roles include:

  • Active Directory (AD DS): Required for Identity Management, user authentication, and Group Policy management.
  • Remote Desktop Licensing Server (RD Licensing): Tracks RDS CALS and ensures compliance.
  • Remote Desktop Connection Broker (RD Connection Broker): Manages user sessions, including load balancing and reconnections.
  • Remote Desktop Gateway (optional) (RD Gateway): Enables secure remote connections over the internet.
  • One or more RDS Session Hosts.

A key factor to note is that if you are running Server OS workloads and use RDSH, that will need to be purchased and licensed separately. Azure Virtual Desktop uses the Windows 11 multi-session operating system, which does not require an additional RDS CAL license. The cost savings can be considerable, as a 5-user license can cost around $749, or a perpetual per-server license can cost around $300 per server.

2. Azure Virtual Desktop licensing

AVD simplifies licensing by using the Windows 10 or Windows 11 Enterprise multi-session operating system, which does not require RDS CALs.

The right to use AVD is included with many Microsoft 365 or Windows Enterprise subscriptions, such as Microsoft 365 E3/E5 or Business Premium.

Costs are based on Azure consumption: virtual machines, storage, and network resources.

Because you are not running traditional RDS Session Hosts, you do not need the additional RDS infrastructure roles or perpetual server CALs, which can significantly reduce licensing complexity and cost. More information can be found here.

3. Nerdio licensing

Nerdio’s licensing model provides additional management layers for Azure Virtual Desktop. It is more straightforward and cost-effective due to its automation and optimization features.

For further licensing information, please visit https://getnerdio.com/plans-pricing-nme/ for Nerdio Manager for Enterprise and https://getnerdio.com/plans-pricing-nmm/ for Nerdio Manager for MSP.

Nerdio licensing has no minimum commitment, so you will only be billed for what you consume.

Migration or transition planning and discovery

Planning your Azure Virtual Desktop image

Microsoft recommends creating a fresh Windows 11 multi-session image rather than importing an existing RDS image. This approach avoids compatibility and sysprep complications and ensures long-term supportability. For teams that must reuse an existing image, guidance is provided later in the document, but a clean build remains the best starting point.

Azure Virtual Desktop supports the following operating systems:

  • Windows 10 or Windows 11 Enterprise multi-session.
  • Windows 10 or Windows 11 Enterprise single-session.
  • Windows Server 2016, 2019, and 2022.
    • Note: Windows Server hosts can be deployed in an AVD host pool to deliver remote applications and desktops securely, but they do not provide the native multi-session capability of Windows 10/11 Enterprise multi-session. Each server host functions like a traditional Remote Desktop Session Host.

If you must reuse an existing RDS image, it can be imported into Nerdio Manager. But this should be done only when necessary and after reviewing Microsoft’s guidance on image compatibility and support. Importing an existing RDS image can introduce issues such as sysprep failures, outdated configurations, and unsupported components. Starting fresh ensures that the image is supported long-term and avoids carrying forward technical debt.

Discovery and assessment

Before building your first AVD environment, perform a detailed discovery of the current RDS deployment:

  • Application inventory: Identify every application installed on the golden image. Remove anything no longer needed and document applications that must migrate.
  • Infrastructure dependencies: Determine where back-end databases, file servers, or other services currently reside. If these remain on-premises while desktops move to Azure, evaluate potential latency and network impacts.
  • User profiles and data: Note how user profiles are stored today (for example, roaming profiles or folder redirection) and plan for migration to FSLogix profiles in Azure.
  • Management tools: If using Configuration Manager (SCCM) or Intune, gather existing deployment data so it can be leveraged in AVD.

A thorough discovery effort helps avoid surprises during the pilot phase and gives you a clear migration roadmap.

Creating a new image within the Nerdio console

The recommended way to prepare your image is to create a clean new image directly in Nerdio Manager. This approach starts from a supported Windows 11 multi-session image and avoids carrying over issues from an older RDS deployment.

For more information about creating images in Nerdio Manager, please visit the following links:

MSP: https://nmmhelp.getnerdio.com/hc/en-us/articles/26125609362573-Overview-of-DesktopImages

Enterprise: https://nmehelp.getnerdio.com/hc/en-us/articles/26124336183821-Create-a-DesktopImage

1. In the Nerdio Manager console, go to Desktop Images and select Add from Azure Library.

2. Fill in the required details, such as name, region, and the base Azure Marketplace image.

3. Click OK. Nerdio Manager will build the image in 20-30 minutes, depending on your customizations. During this process, the platform will:

  1. Deploys a temporary VM. Nerdio creates a VM from the selected Azure Marketplace image so that any options you selected (joining to AD, running scripted actions, uninstalling FSLogix, etc.) can be applied.
  2. Apply your settings and capture the image. After the optional settings are applied, Nerdio captures the VM as a managed image and prepares it for reuse.
  3. Re-generalize and publish to ACG. Nerdio runs Sysprep to re-generalize the VM and publishes the finalized desktop image to the Azure Compute Gallery in the region or regions you specified.

Creating a new image from your existing image

In some scenarios, you may need to reuse an existing Remote Desktop Services (RDS) image instead of starting with a clean Azure Marketplace image when intending to move into a AVD model. This is less common and should be done only when a clean build is not practical. Before you begin, confirm that the operating system is supported for Azure Virtual Desktop (AVD) and that the image is in good working order.

The process has two main parts:

  • Prepare the golden image: Clean up the image and capture a secure snapshot (SAS URL) so Nerdio Manager can access it.
  • Import and finalize: Use the SAS URL in Nerdio Manager to import the image, generalize it, and publish it to the Azure Compute Gallery.

A SAS URL provides secure, delegated access to the storage account containing the snapshot of the image. It is secure because only the administrator knows the URL needed to retrieve the disk image. 

To create the SAS URL, perform the following steps:

1. Power on and review the VM before capture in your current enviornment. This can be a clone of your existing image.

  • Remove any third-party VDI or RMM agents (ConnectWise, Kaseya, Datto, etc.). These can conflict with Azure Virtual Desktop features and often survive Sysprep.
  • Uninstall or disable any endpoint protection/antivirus agents that register the machine in a management console (CrowdStrike, SentinelOne, Defender for Business in managed mode, etc.).
  • Check for remote control or screen sharing tools that install persistent services (TeamViewer, AnyDesk, VNC, etc.).
  • Remove XRD-style or other remote access components that inject custom drivers or services
  • Review any backup or monitoring agents that may have been installed for the legacy RDS environment.
  • Delete temporary files and clear Windows Update cache if large or partially applied updates are pending.

2. Power off the cleaned image and migrate it from your previous provider (Hyper-V, Omnissa/VMware, Citrix, etc.) by converting it to VHD format and uploading it to Azure.

3. In the Azure portal, locate your golden image.

4. Go to Disks and select the disk that contains your golden image.

5. Select Disk Export and enter a URL that expires in seconds 3600000.

6. This will generate a URL like:

https://md-hdd-xxxxxxxxxx.blob.storage.azure.net/ghhn5hwmm12w/abcd?sv=2018-03-28&sr=b&si=b2bf64a6-3db7-422e-af8d-6281b6a756c5&sig=2iMiFpTf38NJVGOL%2FcplaCzpfHFDLCI32STSQG8xNLA%3D

7. Log onto your Nerdio Manager instance, head over to Desktop Images, and select the drop-down next to “Add from Azure Library” to reveal the option “Add Image from Azure VM”.

Fill in the required details, such as SAS URL, network, OS, VM size, and resource group, and press OK to proceed.

During the import process, Nerdio Manager:

  • Upgrades the image to Generation 2 if selected so you can update to Windows 11.
  • Removes any existing FSLogix or Azure Virtual Desktop agents so Nerdio can manage these components.
  • Runs Sysprep and prepares the image for use as an AVD session host.

The System Preparation (Sysprep) tool is used to change Windows images from a generalized state to a specialized state and then back to a generalized state. A generalized image can be deployed on any computer. A specialized image is targeted to a specific computer. You must reseal, or generalize, a Windows image before you capture and deploy the image. For example, when you use the Sysprep tool to generalize an image, Sysprep removes all system-specific information and resets the computer. Visit MS Learn to read more.

For additional detailed guidance, see:

i. Import an Existing Azure-Managed Image as a Desktop Image - MSP

ii. Management and Lifecycle Tasks for Imported Desktop Images - Enterprise

The image will now appear under Desktop Images in Nerdio Manager and show as complete once the import finishes

7. Power on and review the VM. You can use “Generate RDP” or Console Connect to join.

For info on Console Connect, please see: https://nmmhelp.getnerdio.com/hc/en-us/articles/26125609444109-Enable-Console-Connect-remote-support

You can use this time to install any needed applications, like browsers, PDF viewers or editors, etc.

  • You can install speciality drivers, like GPU specific drivers, at this time.
  • You should NOT join your image to a domain.
  • You should NOT install applications like RMM, antivirus, or detection and response (ERD/XRD) applications.

8. When clean-up and prep is complete, close your connection. In Nerdio Manager, choose Power Off and Set as Image on your Desktop Image to publish to the Azure Compute Gallery.

You select it here if you want to publish the image to the Azure Compute Gallery to deploy into multiple regions at the same time for remediation for your environment.

Once the process finishes and image processing is complete, you can now deploy session hosts using the image.

Application deployment methods

When moving from RDS to AVD, application deployment and management change. Traditional RDS environments often relied on manual installation on session hosts or used third-party packaging tools. In AVD with Nerdio, you can modernize and automate application deployment for greater consistency and scalability.

Traditional RDS application deployment

In classic RDS environments, applications were usually installed manually on each session host or managed through basic group policy scripts. Updates required taking hosts out of rotation and re-imaging, which added maintenance overhead and risk of configuration drift.

Azure Virtual Desktop and Nerdio

Nerdio has built-in functionality to help you deploy, manage, and update applications on your images and session hosts. Its automation capabilities let you fully automate the image, application, and session host update process with just a few clicks. We encourage customers to use the following Nerdio capabilities to deploy applications:

  1. Scripted Actions: Scripted Actions are PowerShell scripts executed on the image or session hosts using PowerShell DSC. You can use Scripted Actions to deploy applications and configure settings for session hosts.
  2. Unified Application Management (UAM): UAM is the preferred way of deploying applications via Nerdio. You can import multiple repositories, such as SCCM, Intune, Winget, etc. You can even create your own Private Winget Repository for your custom line of business applications.
  3. ConfigMgr/Intune: If you have an existing SCCM or Intune estate, you can integrate those with Nerdio. Nerdio can easily report on application deployment status and deploy native Intune applications from within the Nerdio console.

These options provide a more automated, scalable approach than the manual methods typically used in RDS environments.

Profile management

When migrating from RDS to AVD, user profile handling must also transition to a modern solution. In RDS, profiles were often managed through roaming profiles or folder redirection on on-premises file servers. These methods can be slow and difficult to scale

Azure Virtual Desktop uses FSLogix to provide fast, consistent profile loading across session hosts. FSLogix stores each user’s profile in a virtual hard disk (VHD) and attaches it at sign-in, delivering a seamless experience like a local profile.

Moving from RDS Profiles to FSLogix

Identify how profiles are stored today: roaming profiles, redirected folders, or other on-premises solutions.

Plan to store FSLogix profile containers in a File Server, an Azure Files Premium Share, or Azure NetApp Files. These options provide high availability and integrate with Azure Active Directory for secure access.

The following sections will show you how to deploy FSLogix profiles with Nerdio.

Deploying FSLogix profiles with Nerdio

IT admins traditionally store profile data using localized profile storage, roaming profiles, or onpremises methods using on-premises file services. These could be dedicated storage solutions, such as NetApp devices or Windows file servers.

When using Azure Virtual Desktop, you traditionally use Azure Files or Azure NetApp Files as the preferred solution for storing user profiles. This section will cover how to create the Azure File shares using Nerdio and then configure the host pools and session hosts to use them.

Create a storage account and file share

After defining your target state for user profiles, the next step is to provision storage before you configure FSLogix so Azure Virtual Desktop session hosts can use it.

First, you must create an Azure Files Storage account to hold the user profiles. Since you cannot generally migrate from RDS user profiles to FSLogix, it is recommended that you create new profiles.

1. To do so, head over to the Nerdio Manager console and go to Azure Files and select “Add Azure Files”.

2. Enter the required details, such as:

a. Storage account name and resource group.

b. Location and performance tier (for example, Premium).

c Redundancy (for example, locally redundant storage).

d. File share name (for example, fslogixprofiles).

For more advanced options, see: https://nmmhelp. getnerdio.com/hc/en-us/articles/26125608596237- Manage-Azure-Files-shares

Once you click OK, Nerdio will automatically create the Azure File Share.

Configure FSLogix configuration settings

Once the storage account and file share have been created, you must make an FSLogix configuration to apply to host pools. You can have multiple pre-configured listings—however, the first one you create will be listed as the default option unless you select otherwise after you create another.

When an FSLogix configuration is applied to the host pool and the session host is provisioned, the FSLogix configuration settings are injected into the registry. When users log onto the session hosts, they will be ready with those registry settings, and an FSLogix profile will be created for that user.

From this configuration screen, you can configure any individual settings you may need to apply or customize to your requirements.

Configure FSLogix host pool settings

Once your FSLogix profile configuration is created, the final step is to apply it to the Azure Virtual Desktop host pool.

If you already have a host pool:

Go to AVD > Host Pools and select the drop-down arrow at the far right of the host pool name. From the Nerdio Manager console, choose “Properties.”

From there, open the FSLogix menu. Turn on “Use FSLogix Profiles” and select the profile configuration you created earlier. If you did not specify a different default when creating it, the configuration is listed as “Default.”

If you have not yet created a host pool:

Continue to the next section of this guide (creating session hosts and host pools) to set one up. After the host pool is created, return to this step to apply the FSLogix settings. Once applied, any new or re-imaged session hosts in that pool will automatically use FSLogix for fast, consistent profile loading.

Creating session hosts and host pools

A host pool is the container for your session hosts, which are the virtual machines that users connect to. In an RDS environment, this would have been the group of RDS Session Hosts. In AVD, a host pool serves the same purpose: It defines both the desktop experience and the collection of VMs that deliver it.

To create a host pool in Nerdio Manager:

1. In the Nerdio Manager console, go to AVD > Host Pools and select Add Host Pool.

2. In the Add Host Pool dialog box, complete the following:

  • Name and description: Provide a clear name and optional description for admin reference.
  • Desktop/app experience: Choose how the pool will be used. Most shared experience AVD scenarios will use multi-user desktop (pooled).
  • Directory: Select the appropriate directory, such as Default (Entra ID).
  • FSLogix: Choose the FSLogix profile configuration—typically “Default” if you already created one.
  • Workspace: Pick the workspace where the host pool will be published.
  • Name prefix: Define a prefix for the session host names. Nerdio will append an automatic pattern to keep names unique.
  • Network: Select the virtual network/subnet for the session hosts.
  • Desktop image: Choose the image that the session hosts will use.
  • VM size: Select the desired VM size for the session hosts.
  • OS disk: Choose the OS disk type and size.
  • Resource group: Specify the resource group where the hosts will be deployed.
  • Quick assign: Optionally assign users or groups now or leave blank to assign later.
  • (Optional) use Trusted Launch: Enable if you want added security features for Gen2 VMs.

3. When you are satisfied with your settings, click OK.

Nerdio will create the host pool and deploy the initial session hosts. You can monitor progress in the Host Pools Tasks section. For more details on dynamic or advanced host pool configurations, see Nerdio’s guide on creating dynamic host pools: https://nmmhelp.getnerdio.com/ hc/en-us/articles/26125632981389-Create-a-HostPool

Configuring auto-scaling

One of the primary reasons to move from Remote Desktop Services (RDS) to Azure Virtual Desktop (AVD) is the ability to save operating costs through dynamic auto-scaling. While RDS required manual planning or basic scheduling, Nerdio (built directly on Azure as an app service) provides advanced auto-scaling through precise algorithms that are designed for maximum cost efficiency.

Once your host pool is created, navigate to the auto-scaling configuration in the Nerdio Manager console. Here, you can define host counts and power management settings that scale up or down to match user demand, ensuring a controlled and cost-effective environment.

To learn more about Nerdio’s auto-scaling capabilities for Nerdio Manager for MSP, visit this page.

For Nerdio Manager for Enterprise, please visit this page.

Connectivity: RDS vs. Azure Virtual Desktop

RDS connectivity is typically delivered through the Remote Desktop client, which supports RDP for secure connections and provides a familiar user experience.

In many traditional RDS deployments, external users connect through a Remote Desktop Gateway (RD Gateway) or are required to establish a VPN connection before accessing the internal network. The RD Gateway provides a secure tunnel for RDP traffic, but it adds management overhead and typically requires firewall configuration and ongoing maintenance.

Azure Virtual Desktop (AVD) eliminates the need for an RD Gateway or VPN. AVD’s control plane is a fully managed Azure service that brokers and secures the connection. Users connect directly over the internet using Azure’s built-in security, which reduces the complexity of maintaining on-premises gateways or VPN appliances. AVD also supports RDP Shortpath, which optimizes the network path to reduce latency and improve the overall user experience.

Deploying the Windows App

The recommended method to connect to Azure Virtual Desktop or Windows 365 is the Microsoft Windows App. This application can be installed from the Microsoft Store and is available for Windows, macOS, iOS/iPadOS, Android/Chrome OS, or accessed through a browser. It can also be deployed as an MSI package if required.

Installing from the Windows Store

1. On the device that you want to install the Windows App on, head over to the Windows Store, search for “Windows App,” and select “Get.”

2. Once it has been installed, select “Open.”

3. You will be prompted for your sign-in credentials.

4. Once the credentials have been entered, you will receive a “Welcome to the Windows App” screen. Select next to continue.

5. You will now have access to all apps and desktops that you have been assigned to. To launch a desktop, select the connect button. 

6. You will then be connected to your desktop.

Windows App web

You can also access the Windows App through a web browser, similar to how many RDS users have historically accessed remote desktops. Use the URL https://windows.cloud.microsoft/ to sign in and launch your resources.

This has the same interface that the Windows App client uses.

 

Policies

The way user policies are applied in Remote Desktop Services compared to Azure Virtual Desktop is quite different and needs to be planned carefully during migration.

In traditional RDS environments, administrators often relied on Group Policy Objects (GPOs) or, in some cases, third-party tools to control user experience and session behavior. Policies such as idle and disconnected session timeouts, clipboard redirection, or device access were commonly enforced through Active Directory and sometimes paired with a Remote Desktop Gateway for external connections.

With Azure Virtual Desktop, policy management shifts to Azure-based controls. Many familiar RDS settings have a direct equivalent inside Nerdio or native Azure tools. Any user-specific settings should be managed by Group Policy or Intune.

Within Nerdio, you can configure some of these Azure-based settings in couple locations.

Session host and host pool settings:

Within the Nerdio Manager console, you can configure key session policies, such as user session time limits, disconnect/idle timeouts, and actions on disconnection. These settings are applied at the host pool level.

Custom RDP settings:

The second location is the Custom RDP menu. The Custom RDP menu in Nerdio lets you configure features like camera and microphone redirection, clipboard access, and other device-level controls. These settings are also applied at the host pool level, where you can configure settings such as disabling cameras, clipboard access, etc.

These can also be configured on the host pool properties within the Nerdio console.

You can read more about custom RDP settings: https://nmmhelp.getnerdio.com/hc/en-us/ articles/26125585648781-Manage-RDP-Properties-of-an-AVD-Host-Pool

User-specific policies:

Any per-user settings (for example, folder redirection or granular desktop restrictions) should continue to be managed through Registry Tweaks, Group Policy, or Microsoft Intune.

For a complete list of available policy settings, please visit this page.

Summary

Migrating from Remote Desktop Services to Azure Virtual Desktop with Nerdio provides a clear path to modernize your virtual desktop environment, reduce costs, and improve performance. By combining thoughtful planning with Nerdio’s management capabilities, organizations can take full advantage of Azure’s cloud infrastructure.

Nerdio’s platform is designed to make each step of the migration process as straightforward as possible—from initial planning and image preparation to policy management and ongoing optimization. With the right preparation and the tools described in this guide, you can transition from RDS to AVD smoothly and position your environment for future growth.

For additional assistance, feel free to contact our team.

Download the guide

Ready to get started?