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.

Windows 10 and my old QNAP NAS

Whether it’s connected or not, shortly after the January 2020 patch for Windows 10 I started seeing boot drive errors on my PC at home. For some reason the Crucial MP500 m.2 127 Gb boot drive started throwing corruptions and disk repair started coming up every other day.

Then another update stalled so I tried a repair – bad move. Part way through this process Disk Repair was run automatically and this stalled. I watched it for 20 minutes and restarted to see what would happen. That appeared to corrupt the contents of the disk.

So I scrambled around and created a bootable Windows 10 USB key on my work laptop and fired up the PC. Not a good story – the M.2 drive was showing as corrupt. So I went for a clean install and wiped the drive and resintalled.

The good news is that it took the reinstall, though in the meantime I’ve ordered a 512 Samsung 970 pro from Amazon as a replacement and will rebuild later. The MP500 is still a fast SSD but I’m now a bit wary of it and will swap it out soon. Fast SSD means really fast install so I had basic windows up and running in 15 minutes and fast internet and an Office 365 subscription means I had basic computing in 30 minutes.

Ultimately I’ll wipe the other two SSD drives (a bit of a long story, involving impatience) when I install the 970 but with another exam looming at the end of the week I wanted to get it up and running with base functionality as soon as possible.

One thing I struggled with for longer than 30 minutes was getting my printer up and running. I have a rather old but excellent Canon ip3000 printer which just happens to hang off the back of my similarly old QNAP TS-109 NAS Drive which gives me network printing. Unfortunately I couldn’t see a thing and no matter what combination of settings I thought I couldn’t see it. I took a break from proceedings to lament my fortune and then had a think. I started wondering about SMB and right enough, SMB1 is disabled by default in the recent builds of Windows 10. I dropped to PowerShell and enabled it and voila – the NAS box appeared on the network. I was able to add it and point the machine to the driver (which was still on one of the SSD data drives which I hadn’t wiped yet).

I’m now uploading a bunch of random stuff to OneDrive for Business in lieu of a rebuild at a later date. AZ-500 preparation beckons…

Passed MS-900

I’m happy to say that I passed MS-900: Microsoft 365 Fundamentals as part of my employer’s initiative to get everyone through the Microsoft Cloud fundamentals exams.

I got a slightly higher score than I got for AZ-900 which either means nothing (question pools and all that) or that you can take the person out of SharePoint but not the Office 365 out of …

Again it is impressive to see that Fundamentals is a proper exam and even if Azure is a bit more interesting for an old (ex) developer like me, Microsoft 365 components are used by almost everyone on a day to day basis.

It also played to themes that I’ve seen with Microsoft 365 projects in real life – customers have a whole bunch of questions to answer about their IT basics i.e. where do my emails go, where do my files go and can you reset my password for me ?