Implications of disabling VMICTimeProvider (Windows7)?

1

I have a private network of two machines: one is Windows 7 and the other is not windows. I want the Windows7 machine to run an NTP server for the non-windows machine to synch to.

The instructions in http://windowsforum.com/threads/windows-7-authoritative-time-server.43921/ list a number of registry settings to change. They all seem reasonable, but I wonder about the implication of disabling the "VMICTimeProvider". From googling I gather that is part of the "VM Integration Components" package. On a desktop windows system, I'm surprised to learn I even have VM Integration. What is this time provider for and what happens when I disable it?

Steve Robbins

Posted 2014-03-24T17:03:09.050

Reputation: 11

Answers

4

Old question but I was just looking at this myself and thought I'd reply.

There's a good discussion here: http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx

But basically the key answer to your question is that it's fine to do and the VM will still sync via Hyper-V during initial boot but Windows itself will use the NTP server you have configured.

... you can “partially disable” Hyper-V time synchronization. The reason why I say “partially disable” is that you do not want to turn off the aspects of Hyper-V time synchronization that fix the time after a virtual machine has booted for the first time, or after the virtual machine comes back from a saved state. No other time synchronization source can address these scenarios elegantly.

Luckily – there is a way to leave this functionality intact but still ensure that the day to day time synchronization is conducted by an external time source. The key thing trick here is that it is possible to disable the Hyper-V time synchronization provider in the Windows time synchronization infrastructure – while still leaving the service running and enabled under Hyper-V.

To do this you will need to log into the virtual machine, open an administrative command prompt and run the following commands:

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

This command stops W32Time from using the Hyper-V time synchronization integration service for moment-to-moment synchronization. Remember from earlier in this post that we do not go through the Windows time synchronization infrastructure to correct the time in the event of virtual machine boot / restore from saved state or snapshot. So those operations are unaffected.

Ieuan

Posted 2014-03-24T17:03:09.050

Reputation: 41

0

While the existing answer covers what effect it would have on Hyper-V. I doubt @Steve Robbins is/was running the Win 7 environment under HV. If that is the case, then it would be safe to disable the VM integration time provider.

I will say though that its a huge pile easier to set the Unix host to be the time server. It takes adding a server line for the source and a restrict line for the server if you only want it to serve one network, to the /etc/ntpd.conf. Then restarting the NTPD service. That's it.

Rowan Hawkins

Posted 2014-03-24T17:03:09.050

Reputation: 276

I'm no longer involved in the project, but I can confirm that the Win7 was running on the bare hardware, not under HV. The "not windows" system was an embedded linux and the reason we did not consider using it as the NTP server is that it did not have a reliable battery-backed RTC so it was hopelessly out of date each time we booted. Finally, FWIW: I never did have success setting up windows as the time server. – Steve Robbins – 2017-06-10T20:29:15.890