Recently, I ran a bunch of Windows patches and upgraded the Hyper-V Integration Services at the same time on a Hyper-V Windows 7 guest in my lab.
After a reboot, a few of the Hyper-V Integration Services would not start correctly. Honestly, I wouldn’t have even noticed initially if I weren’t regularly running a PowerShell shutdown script that calls my VMs with a “Stop-Vm”, that was suddenly unable to gracefully shut down this newly-patched VM. I’m not sure if the simultaneous patching and updating directly caused my error symptoms, but I’m guessing the update was unable to write the registry at the same time as some patch that was installing.
In trying to restart the service manually, I got the following error:
Error 1083: The executable program that this service is configured to run in does not implement the service.
It turns out that I actually had three serivices failing (vmicshutdown, vmicvss, vmictimesync). I did some searching, and fortunately a user named “gzzhouch” at the Windows Server Forum was following up an old post (thanks!) with a similar issue… And I was able to follow his recommendation and get everything back in order.
Let’s step through the fix of the Hyper-V Time Syncronization Service in a little more detail, which was one of the few that failed for me. First, open the Services MMC, look at the details of the failing service, and note the “Service name” and the item at the end of the “Path to executable”, as in my example in the image at right.
…in my example case, the Service Name is “vmictimesync”, and the path item is “LocalServiceNetworkRestricted”. Next, open regedit (don’t do this if you are not comfortable editing the registry!), and browse to:
…and open the value that matches your path item (in my case “LocalServiceNetworkRestricted”), and add the service name (in my case “vmictimesync”) to the list, like this:
…and do this for each Integration Service for which you receive the error.
I’ll warn you though, be very thorough; it can trick you since LocalServiceNetworkRestricted and LocalSystemNetworkRestricted look almost the same (ask me how I know).
Then reboot, and that should do it! At least it did for me. Enjoy!