我有两台机器的私有网络:一台是 Windows 7,另一台不是 Windows。我希望 Windows7 机器运行 NTP 服务器,以便非 Windows 机器可以与其同步。
中的说明http://windowsforum.com/threads/windows-7-authoritative-time-server.43921/列出要更改的注册表设置。它们看起来都很合理,但我想知道禁用“VMICTimeProvider”的含义。通过谷歌搜索,我了解到这是“VM Integration Components”包的一部分。在桌面 Windows 系统上,我很惊讶地发现我甚至有 VM Integration。这个时间提供程序有什么用处,当我禁用它时会发生什么?
答案1
这是一个老问题,但我刚才自己看了看,并想回答一下。
这里有一个很好的讨论:http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx
但基本上,您的问题的关键答案是,这样做是可以的,并且 VM 仍将在初始启动期间通过 Hyper-V 同步,但 Windows 本身将使用您配置的 NTP 服务器。
... 您可以“部分禁用” Hyper-V 时间同步。我之所以说“部分禁用”,是因为您不想关闭 Hyper-V 时间同步的某些方面,这些方面会在虚拟机首次启动后或虚拟机从保存状态恢复后修复时间。没有其他时间同步源可以完美地解决这些情况。
幸运的是,有一种方法可以保持此功能完好无损,但仍能确保日常时间同步由外部时间源进行。这里的关键技巧是,可以在 Windows 时间同步基础架构中禁用 Hyper-V 时间同步提供程序,同时仍使服务在 Hyper-V 下运行和启用。
为此,您需要登录虚拟机,打开管理命令提示符并运行以下命令:
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0
此命令会阻止 W32Time 使用 Hyper-V 时间同步集成服务进行即时同步。请记住,在本文前面部分中,我们不会通过 Windows 时间同步基础结构来更正虚拟机启动/从保存的状态或快照恢复的时间。因此这些操作不受影响。
答案2
虽然现有的答案涵盖了它对 Hyper-V 的影响。但我怀疑 @Steve Robbins 是否正在/曾经在 HV 下运行 Win 7 环境。如果是这样,那么禁用 VM 集成时间提供程序将是安全的。
不过我要说的是,将 Unix 主机设置为时间服务器要容易得多。如果您只希望它为一个网络提供服务,则需要在 /etc/ntpd.conf 中添加源服务器行和服务器限制行。然后重新启动 NTPD 服务。就是这样。