无法查看 Windows Server 2012 任务计划程序任务“SynchronizeTime”的计划

无法查看 Windows Server 2012 任务计划程序任务“SynchronizeTime”的计划

我们有一台服务器经常出现时钟漂移问题。它是在 HyperV 主机中以客户机身份运行的 Windows Server 2012。

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

\Microsoft\Windows\Time Synchronization\SynchronizeTime

让我困惑的是,当我在任务计划程序中查看此任务的配置时,触发器下没有列出任何内容。下次运行时间列为空白,但上次运行时间列显示“16/5/2014 3:24:48 am”。

所以我知道它大约在 5 天前发生,但我不知道是什么引发了它。它是如何控制的?

我想了解这一点的原因是,我认为我可能需要将这项任务的频率调整为每天一次,以对抗时钟漂移。

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

答案1

由于您明确要求我们不是为了给您提供有关如何在 Windows 机器上同步时间的建议,我将尽量避免这样做。

您在 Microsoft 文件夹下看到的计划任务通常由 Microsoft 编写,用于操作 Windows 操作系统的各个组件,并且它不是通常和他们混在一起是个好主意。

如您所见,您指出的计划任务根本没有触发器。如果您只打算手动执行计划任务(或从另一个程序调用它),则可以创建没有触发器的计划任务。您看到的大多数这些计划任务都是 Microsoft 添加到操作系统中的,并且没有触发器,这与他们在 Windows 7 和 2008 R2 中向操作系统添加 Windows 服务触发器相吻合。如果您查看该计划任务的操作,您将看到以下内容:

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

请注意,计划任务会将命令行参数 task_started 传递给 w32time 服务,让程序知道它是从计划任务启动的,而不是通过其他方式启动的,例如有人通过 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 域状态发生变化时,Windows 会运行时间同步吗?当然不是。这意味着全世界数百万台永远不会加入域的独立 PC 将没有时间同步功能,而事实显然并非如此。Windows 始终会自动唤醒时间服务并进行同步……在启动时,在周日凌晨 1:00,有几种情况。

Windows 时间服务现在是触发启动的,不会在后台持续运行。这样做的目的是节省运行不需要全天候运行的后台服务的 CPU 周期和电池电量。但问题是,除非 w32time 服务正在运行,否则您无法重新同步时间。那么,您如何自动启动服务,让其同步时间,然后再次关闭呢?

我已经设置了一个计划任务并从操作系统的其他地方调用它。

相关内容