Migrate manually from Azure Virtual Desktop (classic)

I recently went through the process of migrating our pilot Windows Virtual Desktop (WVD) environment from classic to ARM Azure Virtual Desktop. The manual instructions are straightforward, especially if you’ve ever had to reallocate a personal session host to someone else. The process of reallocation is very similar to migration, just that instead of re-registering the session host with the same host pool you re-register the session host with the “new” host pool.

The main reason for migration was cost; our pilot environment while handy is also under-utilised and I really wanted to get the utility of start on demand as I thought this was a good fit for our usage model. We already have a stop – start schedule using runbooks (yes – old style again) for cost management reasons and my plan was to switch automation to a stop only, so that a session host would start when requested and then shut off after business hours.

The instructions for migration are at Migrate manually from Azure Virtual Desktop (classic) – Azure | Microsoft Docs which is rather good like most of the platform documentation these days. I checked with our team and a colleague volunteered his session host for the initial test and I grabbed my existing ARM templates that create the Workspace, Application group and Host pool with the naming that I like to use.

Note that the migration process (like session host reallocation) relies on you having access to the session host as an admin; there isn’t built in tooling to get remote access to a session host as part of Azure Virtual Desktop so you’ll need credentials and ports open (if you’ve been good and kept inbound 3389 closed).

My first hiccough was finding the “Registration Key” for the host pool; for new deployments I use PowerShell and pass it straight. In the Azure Portal the Registration Key link is innocuously hidden at the top of the Host pool page next to Refresh and Delete in one of the shortest toolbars going.

The rest was smooth enough, my other tip is that you somehow need to gather the two download URLs and the registration key in a form you can get to the session host. As cut and paste is restricted in our environment I store the info in OneDrive for Business in our tenant and use the web to login and retrieve the information.

The next thing to stall me was installation of the Azure Virtual Desktop Agent. When I went to install the .msi I got the error “Remote Desktop Services Infrastructure Agent Setup Wizard ended prematurely because of an error. Your system has not been modified. To install this program at a later time, run Setup Wizard again. Click the Finish button to exit the Setup Wizard.”

It took me a while to remember this issue; on this session host I needed to uninstall the multiple installations of the following applications:

  • Remote Desktop Services SxS Network Stack
  • Remote Desktop Services Infrastructure Agent
  • Remote Desktop Services Infrastructure Geneva Agent NN.N.N

In my case I had four of each to remove. Note that the first will give warnings about running applications; I’d advise you not to stop these and queue for a reboot, otherwise you will lose your RDP connection and I had to restart in order to be able to access the session host VM again.