Hyper-V Missing VMs
Over the past 6 months I installed 4 Server 2019 Hyper-V hosts for various clients. After several months with no problems, following a reboot, all running VM’s completely disappeared from the Hyper-V management console and were not accessible from the network using management tools, file shares, remote desktop, or even pings. Oddly, shut down or saved VM’s were present.
When this first happened I was shocked. The VHDX files were all present so I could create a new VM, but that didn’t seem practical. Googling showed that this can happen if the Hyper-V Virtual Machine Management service did not start, but in my case it had. I tried restarting the service, the VM’s instantly reappeared, and were in a running state with boot up almost complete.
This issue over the coming months started happening on other 2019 servers and after every reboot, planned or due to a power outage, I had to connect to the host and restart the Hyper-V Virtual Machine Management service.
Further Googling this issue brings up suggestions of corrupt VM configuration files, granting “NT Virtual Machine\Virtual Machines” the “logon as a service right”, doing the same with group policy, and other suggestions, but where restarting the service would resolve in every case I assumed there was not a configuration issue.
In the end setting the Hyper-V Virtual Machine Management service start up type to “Automatic (delayed start)” resolved the problem on all machines, though it resulted in a slightly longer boot time for the VMs.
All of thee servers worked fine for a few months so I assume the problem was due to a Windows update but to date I have found no actual cause. Also, I can confirm this only occurs on my 2019 Hyper-V hosts. There are no issues with Server 2016 or earlier servers.
Update: Oct 2020. I had another server with the same issue. O/S had been installed 8 months prior and no updates applied in recent months. Setting the service as delayed start did not resolve. I had to create a scheduled task to run 10 minutes after boot up. 5 minutes did not work. The scheduled task simply pointed to a batch file with the following. (the ping command just delays the process to be sure Net Stop completes before the next line).
Net Stop VMMS
ping -n 10 127.0.0.1
Net Start VMMS