在非域join的服务器上进行时间同步

我有一个服务器是在一个单独的networking从一个工作组的其他领域。 因此,它不能使用域控制器作为时间源。 该服务器是Windows Server 2012 R2计算机。

我想确保服务器configuration为从我国的可靠NTP服务器列表中检索它的时间,但我有一些困难,如何最好地configuration这个。

我的第一个想法是configuration机器的方式与在域环境中configurationPDC的方式非常相似,因此可以从一个或多个外部时间源获取时间。 命令行如下所示:

w32tm /configure /manualpeerlist:"ntp1.npl.co.uk ntp2.npl.co.uk" /syncfromflags:manual /update 

这将在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters项中设置适当的registry值。

不幸的是,命令失败,因为“Windows时间”(AKA w32time)服务没有启动。 调查显示,在非域join的服务器上,Windows时间服务设置为“手动(触发启动)”,其触发因素是计算机是否join域。 由于没有,服务还没有开始。

由于该服务没有运行,你可能会认为这意味着configurationw32time使用特定的NTP服务器将无能为力。 但是,还有一个名为SynchronizeTime的内置计划任务位于Task Scheduler Library\Microsoft\Windows\Time Synchronization\SynchronizeTime ,该任务使用task_started参数启动w32time服务。 这似乎导致服务启动,同步,然后再立即停止。 更奇怪的是,这个任务没有触发器,但它定期运行。 我找不到任何方法来确定导致任务运行的原因。

为了进一步增加混淆,还有在“Internet时间”选项卡的“date和时间”对话框中看到的设置:

在这里输入图像说明

看起来这个设置涉及到一个完全不同的registry键,它也包含一个NTP服务器列表。 关键是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers

所以,以上所有的问题都让我想知道如何才能做到我想做的事。 我也有兴趣知道任何这些问题的答案:

  • 为什么有两个系统似乎做同样的事情?
  • 第二个是如何工作的?
  • 他们如何互动?
  • 我应该用哪个?
  • 计划任务如何触发?

正如你自己发现的,Windows中的NTPconfiguration可能会很痛苦。 虽然你一定可以使它工作,但我强烈build议你使用NetTime或NTP for Windows这个端口 (如果你需要真正的NTP精确度) 。

无论如何,关于w32time和graphics用户界面显示的问题,对于http://www.timesynctool.com/我们看:

Windows 7中的Windows时间服务也默认configuration为每次系统启动时都不会自动启动 – 用户界面报告Windowsconfiguration为自动更新系统时间,但除非用户手动启动Windows时间服务通过服务控制面板小程序,或通过请求手动同步。 除非用户将Windows时间服务重新configuration为自动启动,否则每次系统重新启动时都会被禁用!