Accelerate your RDS and VDI migration to Windows Virtual Desktop
Published Dec 23 2019 11:00 AM 29.5K Views

This article focuses mainly on the migration procedure for the Windows Virtual Desktop - fall 2019 release.

While this post will focus on new Microsoft Azure tools that will help you migrate Remote Desktop Services (RDS) and Virtual Desktop Infrastructure (VDI) environments to Windows Virtual Desktop, I’d like to start by thanking everyone that has adopted Windows Virtual Desktop since we announced general availability on September 30, 2019!

At Microsoft Ignite in November, we announced new features as well as new Azure capabilities that enable you to migrate existing virtual desktop workloads to Microsoft Azure—as part of Windows Virtual Desktop. Whether you are working with a greenfield scenario (i.e. building a new environment from the ground up) or a brownfield scenario (i.e. transforming existing RDS resources and Windows 10 single-session virtual machines), I hope you find that the information and links in today’s post help you kickstart (or progress) your Windows Virtual Desktop implementation. Here’s what I’ll cover:

  • Why use Windows Virtual Desktop instead of Remote Desktop Services
  • Azure Migrate (and our partnership with Lakeside)
  • Azure Migrate: Server Migration
  • An overview of the migration process
  • Migrating existing user profile disk (UPD) profiles to Microsoft FSLogix Profile Containers
  • Making existing RDS or VDI hosts available for Windows Virtual Desktop

Why use Windows Virtual Desktop instead of Remote Desktop Services

The transformation from a traditional RDS and VDI environment to Windows Virtual Desktop offers several benefits:

  • Microsoft manages the brokering platform as a service.
  • Windows 10 Enterprise multi-session capabilities, including free Windows 7 Extended Security Updates (ESU) until 2023.
  • Linux rate benefits.
  • Optimized support for Office365 ProPlus (via FSLogix Profile Container integration).
  • Support for workloads on Azure and via Azure Stack Hub as well as infrastructure services on-premises via ExpressRoute and S2S VPN connectivity (Did you know WVD is now part of the ExpressRoute Microsoft internal peering?)
  • The ability to “lift and shift” personal desktops via Azure Migrate and Azure Migrate: Server Migration.

Azure Migrate

Azure Migrate is a free Azure service that helps you leverage Azure infrastructure-as-a-service (IaaS) most efficiently. While you might recall reading about Azure Migrate in relation to server, database, and application workloads, Azure Migrate now also supports virtual desktop workloads.


While Azure Migrate is not required for RDS and VDI migrations (you can use your own assessment and migration tools), it does offer:

  1. Assessments for readiness, sizing, and cost estimation
  2. Migration with near-zero downtime
  3. An Integrated experience with end-to-end progress tracking
  4. Your choice of tools with ISV integration (Lakeside - SysTrack)


For guidance on how to use Azure Migrate for your (Windows) Virtual Desktop workloads, see Add assessment tools.

Lakeside ISV partner assessment integration

Our Windows Virtual Desktop partner ecosystem is very broad. To accelerate your VDI migration to Azure, we rely on our partner Lakeside, an independent software vendor (ISV) and known name in the VDI monitoring and analytics industry, who is integrated into our Azure Migrate process.

Lakeside uses their SysTrack diagnostic data to provide a scoring assessment for your virtual desktop workload before you begin migrating your workloads to Azure. During this process, you receive detailed information about the suggested resources (and costs) to use per user session for Windows 10 Enterprise and as well as Windows 10 Enterprise multi-session scenarios.

To learn more about the integration of Azure Migration with Lakeside, see Digital experience monitoring for Windows, or watch our Microsoft Ignite session, Accelerate your RDS and VDI migration to Windows Virtual Desktop, where we also demonstrated the integration with Lakeside SysTrack.


Azure Migrate: Server Migration

As noted above, Azure Migrate is a migration service that provides a smooth “lift and shift” option for Azure, much of which is accomplished via Azure Migrate: Server Migration. Officially, this service on Azure was used as Disaster Recovery (as-a-Service) solution to support failover workloads to Microsoft Azure so that you can failover to Azure and not failback.

Server Migration uses a management server that remains a replication server in your on-premises, physical, or AWS/Google Cloud environment. The management server replicates the specific drives of the virtual machines to your Azure storage blob account. After you start the migration process, virtual machines in your Azure IaaS environment will be created. 

See About Azure Migrate for information on how to start with Azure Migrate for VMware, Physical and Hyper-V on-premises workloads today.


Windows Virtual Desktop migration overview

Before we can jump into how to transform your existing RDS or VDI images for use with Windows Virtual Desktop, I want to outline some important steps you first need to take to ensure a successful migration to personal and pooled desktops in Windows Virtual Desktop.

User identity

  • Sync user identities and password hash from on-premises Active Directory (AD) to Azure AD.
  • Set up an AD instance on Azure or continue using on-premises AD via VPN or ExpressRoute.
  • (Alternative) Set up Azure Active Directory Domain Services (Azure AD Domain Services).

Virtual Machines

  • Lift and shift virtual machines from your on-premises environments with Azure Migrate: Server Migration.
  • Bring your on-premises Windows Server or Desktop images and create new virtual machines on Azure.
  • Register your new virtual machines with the Windows Virtual Desktop brokering service.


User and application data

Client (end user) endpoint capabilities

  • Download and install the WVD Windows or MacOS client or use the HTML5 web client, or use the mobile RD clients available through Google Play or Apple App Store. (Did you know that the RD Client iOS app for Apple is now available?)

Migrate existing user profiles to FSLogix Profile Containers

In November 2018, Microsoft acquired FSLogix. After the acquisition, Microsoft decided to make the Profile Container product the default for Windows Virtual Desktop. To provide a good migration path between your existing profile solution and Profile Container, we have created a migration script that is currently available as a Private Preview. To gain access to the Private Preview, complete this registration form.

The migration script will allow you to perform mass conversions of user profiles from various (specified) types to FSLogix based Profile Containers at scale. Here are some details about the tool code base and structure of the code with the commands to be executed, as well as detailed examples

Once you have the migration script, \fFollow the steps below.

  1. Place the FSLogixMigration Folder in a PSModule directory,
  2. import the module with command
  3. Import-Module FSLogixMigration
  4. If the module is imported successfully you will see the welcome message.
  5. At the time of import, a check will be done for the following modules: ActiveDirectory, Hyper-V, Pester

Example command:

Convert-UPDProfile -ProfilePath "C:\Users\UserDisk1.vhd" -Target "\\Server\FSLogixProfiles$" -MaxVHDSize 20 -VHDLogicalSectorSize 512 -VHD -IncludeRobocopyDetails -LogPath C:\temp\Log.txt`

Main Functions

  • _Convert-RoamingProfile_ – Converts a roaming profile to an FSLogix Profile Container
  • _Convert-UPDProfile_ – Converts a user profile disk (UPD) to an FSLogix Profile Container

Helper Functions

  • _Get-ProfileSource_ – Takes input for the source type/path
  • _New-MigrationObject_ – Creates a PowerShell object, which the script refers to for each migration
  • _Mount-UPDProfile_ – Mounts a user profile disk to copy data
  • _New-ProfileDisk_ – Creates a VHD or VHDX at the Target location
  • _Copy-Profile_ – Runs a Robocopy from source to destination
  • _New-ProfileReg_ – Creates an FSLogix Registry .reg file
  • _Write-Log_ – Used to write verbose commands and log

Disclaimer: The Private Preview for UPD to FSLogix Container conversion for Windows Virtual Desktop is provided without a service level agreement, and it's not recommended for production workloads. Certain features might not be supported or might have constrained capabilities. FSLogix Profile Container may not support all functionality of the formats that are converted. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Make existing RDS or VDI hosts available for Windows Virtual Desktop

After you successfully “lift and shift” your existing hosts with Azure Migrate: Server Migration to your Azure environment, you are ready to prepare your virtual machines. This process makes the virtual machines ready for Windows Virtual Desktop.

You can use existing images as base image for the Azure Marketplace host pool enrollment process after performing the steps below:

  1. Have your Windows Virtual Desktop tenant information ready, or create a new tenant.
  2. Create the Windows Virtual Desktop host pool via PowerShell.
New-RdsHostPool -TenantName <tenantname> -Name <hostpoolname>


  1. Request the RdsRegistrationInfo token for RD Agent installation from your Windows Virtual Desktop tenant.
New-RdsRegistrationInfo -TenantName <tenantname> -HostPoolName <hostpoolname> -ExpirationHours <number of hours> | Select-Object -ExpandProperty Token | Out-File -FilePath <PathToRegFile>


  1. Download and install the RDAgent on the RDS session host.


  2. Paste the RdsRegistrationInfo token into the value field.


  3. Download the Windows Virtual Desktop Agent Bootloader and run the installer.

    WVD Agent Bootloader.jpg
  4. Sysprep (Generalize) your image and shut down the virtual machine.


  5. Create a managed image from the VM in the Azure portal. Click on Capture


  6. Create the image. Enter the Name and Resource group. You can provide your own versioning in the name.


Now that you have performed all the required steps, the virtual machine is ready to use as base image for your Windows Virtual Desktop host pool(s) enrollment.


Use your Azure managed image as the base for the Marketplace Windows Virtual Desktop host pool(s)

Once you have prepared your image as a managed image and want to use it as a base image for your host pool, you will use your image name as image source during the process of provisioning a host pool.

Note: Ensure that the managed image is both in the specified Azure subscription and in the Azure location you select in step two of the Windows host pool enrollment process.

  1. Open the Azure Marketplace and search for Windows Virtual Desktop – Provision a host pool. Click on


  2. Select your Azure Subscription, Resource group and datacenter Region and enter a host pool name. Select Next: Configure Virtual Machines.


  3. Enter the Usage Profile (i.e. workload type), number of Total users and Virtual machine name prefix. Select Next: Virtual Machines settings.


  4. Select Managed image from the Image source
  5. Enter the name of your managed Image and resource group as shown in the image below.
  6. Select your storage type. Enter the AD join account to provide the domain join to AD. Select your Azure Vnet and subnet. Click on Next: Windows Virtual Desktop information.


  7. Finish the process by entering your default tenant group, tenant name and Azure AD UPN or service principal that is the RDS owner.


  8. Select Review + Create.

Now your image is being used as base for all your virtual machines as part of your Windows Virtual Desktop host pool! You can start assigning desktops or remote apps to users, or performing other tasks.

I hope you have found this post useful for your Windows Virtual Desktop project. Please feel free to share your feedback or post question in the Comments section below!


Version history
Last update:
‎Jun 17 2020 09:31 AM
Updated by: