If you're using Hyper-V, Microsoft recommends deactivating the Hyper-V Time Synchronization service on the virtual machine (VM) by clearing its Time synchronization check box in the Hyper-V Manager's Integration Services section. You're supposed to deactivate this service on each VM running in a Windows domain. (See the Microsoft article "Deployment Considerations for Virtualized Domain Controllers" at technet.microsoft.com/en-us/library/dd348449%28WS.10%29.aspx.) However, when I cleared this check box on all the virtual workstations, servers, and domain controllers (DCs) in my Windows domain, I ran into a problem during reboot. The default Windows Time service (W32time) wouldn't start on the virtual DCs. I had to unregister, register, then start the Windows Time service to make it work properly.

I couldn't find anything on the web about this problem, but then I happened to notice something odd: The Hyper-V Time Synchronization service was running on the virtual DCs and all the other VMs, even though I cleared their Time synchronization check boxes. So, I tried a new approach on one of the virtual DCs. I used Windows Services in the Control Panel to stop the Hyper-V Time Synchronization service, then set it to Disabled. It worked! The Hyper-V Time Synchronization service was no longer running and the Windows Time service started without any problems.

For the rest of the VMs in the domain, I used a Group Policy Object (GPO) to disable this service. I edited the Default Domain Policy by navigating to \Computer Settings\Windows Settings\Security Settings\System Services\Hyper-V Time Synchronization, where I selected the Define this policy setting check box, then chose the Disabled option.

With this procedure, all the VMs running in a domain will use the Windows Time service by default to synchronize with a virtual or physical DC. Any workgroup VMs will still use the Hyper-V Time Synchronization service to synchronize with the host server.