Recently I have received several messages from people who have had trouble getting Hyper-V to work, particularly after installing some of the recent patches released by Microsoft. As such, I wanted to take the opportunity to talk about some of the things that you can do if you are experiencing trouble running Hyper-V.
Check the Basics First
The first sign of trouble may be logging into the Hyper-V Manager, only to see that the console is essentially empty. Clicking on the Connect to Server link causes Hyper-V to display an error message telling you to check the Virtual Machine Management Service, as shown below:
The Hyper-V Manager may display an error message that is similar to this one.
Similarly, the Hyper-V Manager may display an error message indicating that the Virtual Machine Management Service is unavailable, as shown below:
The Hyper-V Manager might display a message stating that the Virtual Machine Management Service is unavailable.
In most cases, these errors are caused by the failure of essential Hyper-V services. To check the problem, open the Service Control Manager by entering the services.msc prompt at the server’s Run prompt. After doing so, check to make sure that these services are running:
- Hyper-V Virtual Machine Management
- Hyper-V Host Compute Service
You can check these services from PowerShell by entering these commands:
Get-Service “Hyper-V Virtual Machine Management”
Get-Service “Hyper-V Host Compute Service”
If necessary, you can start the services by running these commands:
Start-Service “Hyper-V Virtual Machine Management”
Start-Service “Hyper-V Host Compute Service”
It looks like below:
This is how you start the Hyper-V services from PowerShell.
What If the Services Do Not Start?
Hopefully, these techniques have allowed the Hyper-V services to start, and Hyper-V is now functional. If not though, there are some other things that you can try.
The next thing that I recommend doing is to check the server’s event logs for clues as to why Hyper-V isn’t being allowed to run. Service related error messages are listed in the System log.
If you look at the below screenshot you can see the event logs indicate that the Hyper-V Virtual Machine Management Service has failed to start because of a logon failure.
The service has failed to start because of a logon failure.
In this case, the error is self-explanatory, but descriptions displayed within the event logs are not always quite that cut and dry. If you need more information, try clicking on the Details tab. It may give you more information about the cause of your problem.
If you receive an error message like the one that is shown in the previous figure, open the Service Control Manager, right click on the Hyper-V Virtual Machine Management service (or whichever service is listed in the error), and select the Properties command from the shortcut menu. This will bring up the service’s properties sheet. Go to the Log On tab and make sure that the service is configured to use the correct credentials. Hyper-V related services are designed to log on as the Local System Account, as shown below:
Make sure that the service is set to log on as the Local System Account.
Another Possible Cause
Many of the Hyper-V failures that are being reported are happening on Windows 10 machines that are configured to run Hyper-V, and are related to a security feature known as the Code Flow Guard. Check the event logs for errors related to MSR access violations. These errors may not necessarily show up in the System logs, so it’s a good idea to perform a query across all of the logs.
If you do discover that Code Flow Guard errors are occurring, there is a relatively easy workaround that will usually correct the problem. Go to Settings, and then click on Update & Security, followed by Windows Security. From the Windows Security screen, click on the App & Browser Control option. Scroll to the bottom of the App & Browser Control screen and click the Exploit Protection Settings link. When the Exploit Protection screen appears, go to the Program Settings tab and then find C:\Windows\System32\vmcompute.exe (it’s near the bottom of the list). Now, click the Edit button that’s shown below:
Click the Edit button beneath C:\Windows\System32\vmcompute.exe.
Windows will now open the Program Settings dialog box. Scroll through this dialog box (even though it doesn’t display a scrollbar) until you locate the Control Flow Guard setting. Now, uncheck the Override System Settings check box, shown in the below screenshot. Remember, you should only do this if the Event Viewer is reporting MSR access violations related to Hyper-V.
Uncheck the Override System Settings check box if necessary.
Now, just apply the changes and try to start the Hyper-V services. For many people, this technique has fixed the problem.
Try out Beginner’s series on Hyper-V here:
Beginners’ Guide for Microsoft Hyper-V: What is Nested Virtualization in Hyper-V – Part 45
Follow our Twitter and Facebook feeds for new releases, updates, insightful posts and more.