无法看到Windows Server 2012任务计划任务的计划“SynchronizeTime”

我们有一个服务器,经常得到一个时钟漂移的问题。 Windows Server 2012作为HyperV主机中的guest虚拟机运行。

我的印象是,这个计划的任务应该定期导致重新同步:

\Microsoft\Windows\Time Synchronization\SynchronizeTime 

令我困惑的是,当我在Task Scheduler中查看此任务的configuration时,触发器中没有列出任何内容。 “下次运行时间”列为空,但“上次运行时间”列显示“2014年5月16日3:24:48”。

所以我知道它在5天前运行,但我不知道是什么触发了它。 这是如何控制的?

我想理解这个的原因是我认为我可能需要将这个任务的频率调整到像日常那样对抗时钟漂移。

我不想讨论有关同步服务器时钟的最佳方法 – 现在我特意询问这个计划任务的行为。

既然你明确要求我们不要给你关于如何在Windows机器上同步时间的build议,我会尽量避免这样做。

您在Microsoft文件夹下看到的计划任务通常是由Microsoft撰写的,以便操作Windows操作系统的各个组件, 通常不是一个好主意。

您所看到的计划任务只是没有触发器。 如果您只打算手动执行它(或要求从另一个程序运行它),那么可以创build一个没有触发器的计划任务。您看到的Microsoft添加到操作系统并且没有触发器的这些计划任务中的大多数是同时发生的与他们在Windows 7和2008 R2中添加Windows服务触发器到操作系统。 如果你看看这个计划任务的动作,这就是你所看到的:

 %windir%\system32\sc.exe start w32time task_started 

请注意,计划任务将一个命令行parameter passing给w32time服务task_started,以使程序知道它已从计划任务启动,而不是由其他方式启动,例如某人通过以下方式启动服务:通过services.msc。 这使得程序可以根据启动的方式采取不同的行动。

如果你看看w32time的服务触发器:

 C:\Windows\system32>sc qtriggerinfo w32time [SC] QueryServiceConfig2 SUCCESS SERVICE_NAME: w32time START SERVICE DOMAIN JOINED STATUS : 1ce20aba-9851-4421-9430-1ddeb766e809 [DOMAIN JOINED] STOP SERVICE DOMAIN JOINED STATUS : ddaf516e-58c2-4866-9574-c3b615d42ea1 [NOT DOMAIN JOINED] 

那么这是否意味着Windows时间服务在计算机的Active Directory域状态更改时运行? 当然不是。 这意味着,世界各地人们家中的数百万台独立电脑将永远无法join域,因此无法实现时间同步function,显然并非如此。 Windows会自动唤醒时间服务并自始至终同步…在启动时,星期天凌晨1点,有几种情况。

Windows时间服务现在触发启动,并不会在后台不断运行。 这个想法是为了节省浪费的CPU周期和运行后台服务的电池电力,而不需要全天候运行。 但是捕获22是,除非w32time服务正在运行,否则你不能重新同步时间。 那么你将如何自动启动服务,让它同步时间,然后再closures?

我会设置一个计划任务,并从OS内的其他地方调用它。