The long and short is that if you have a Windows 2012 R2 virtual machine with either Exchange 2013/2016 installed and you upgrade the Hyper-V integration services the VM gets stuck on the next reboot. After about 30 minutes the login window appears but after trying to login the VM runs like a dog.
The fix is simple but painfully slow.
- Shutdown the VM, you might have to reset it.
- Attach a Windows 2012 R2 ISO to the VM
- Start the VM and press a key to boot from the ISO
- Select the Repair Windows option and get to the CMD prompt
- Next alter the boot configuration so you have the option to boot into safe mode.
- At the CMD prompt type:
bcdedit /set {bootmgr} timeout 15 - Reboot the VM and remove the ISO
- You might find Windows wants to back out the failed updates from the previous boot.
- At the Windows Boot manager select Safe Mode.
- Once windows boots you will need to login and disable the Exchange services.
- Open a PowerShell prompt and enter this command.
get-service -Name MSE* | ?{$_.Starttype -eq "Automatic"} | Set-Service -StartupType Disabled - Now reboot the VM, you can ignore the Boot menu.
- After Windows starts and you have logged in you can insert the Integration Services disk again and apply the update. Note you might find Windows plays up a bit as Exchange isn't working now.
- Reboot the server, this time it shouldn't get stuck at "Getting Windows Ready"
- After you have restarted and logged in you can enable the Exchange services once more by entering this command.
get-service -Name MSE* | ?{$_.Starttype -eq "Disabled"} | Set-Service -StartupType Automatic - One last reboot and everything should be back to normal.
Microsoft has a lot to answer for here, the first time you see this it's really scary stuff.