如何检查系统当前的 NTP 配置?

如何检查系统当前的 NTP 配置?

我需要验证某些 Windows 系统上的当前 NTP 配置。理想情况下,我希望能够通过命令行而不是浏览配置屏幕来执行此操作。

(我正在研究几个不同的操作系统版本,并且配置屏幕在各个版本之间并不总是位于同一位置。)

我希望找到一个快速、好记的命令,只需将其输入到 CMD 控制台即可获得结果。不过,我可以随身携带的批处理文件也可以。

具体来说,我需要以下内容:

  • 显示系统是否配置为从 NTP 服务器接收时间。
  • 显示系统正在从其接收时间的 NTP 服务器。
  • 显示上次同步的时间。
  • 显示系统当前时间。

要实现这些结果需要什么命令?

寻找与 Windows XP、7、Server 2003 和 Server 2008 交叉兼容的解决方案。

答案1

在命令行中输入

w32tm /query /configuration
w32tm /query /status
Time /T 

w32tm /query /configuration为您提供已设置的配置。

w32tm /query /status为您提供以下信息:

  • 地层
  • 跳跃指示器
  • 精确
  • 上次同步
  • NTP 服务器
  • 轮询间隔

time /T输出当前系统时间。

注意:w32tm /query最初在 Windows Vista 和 Windows Server 2008 的 Windows Time 客户端版本中可用。请参阅Windows 时间服务工具和设置

答案2

这回答了你的最后一个问题:

打开命令提示符并准确输入:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x(您希望获得多少回报)

它返回时间以及与 NTP 服务器时间的差异。如果它返回时间,错误:0x80072746,则这不是您的 NTP 服务器。

命令示例如下:

命令示例

答案3

我试过:

w32tm /query /status

我有:

The command /query is unknown.

在另一台机器上,我得到:

The following error occurred: The service has not been started. (0x80070426)

然后我尝试:

reg QUERY [\\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time

我有:

ERROR: The system was unable to find the specified registry key or value.

然后我尝试:

net time /querysntp

我有:

This computer is not currently configured to use a specific SNTP server.

在另一台机器上,我得到了帮助页面,其中还显示:

The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.

因此,基本上,该服务没有运行。以下这些说明,我这样做了:

w32tm /unregister
w32tm /unregister
w32tm /register
net start w32time

最后,以上所有方法均可奏效。(注意:如果net start失败,请参见下文)然后我只需要设置我的 ntp...我这样做了:

w32tm /config /manualpeerlist:10.0.0.5 /syncfromflags:manual /reliable:yes /update

按照以下指示这里但也许可以简单到如下程度:

net time /setsntp:10.0.0.5

按照指示这里. (10.0.0.5 是我的本地 NTP 服务器)。如果您没有使用本地 NTP 服务器,则可以使用通用服务器:

w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /reliable:yes /update

最后,您可能需要执行以下操作,但这对我来说没有必要:

w32tm /config /update
w32tm /resync /rediscover

注意:如果net start w32time失败并出现错误 1290(服务启动失败,因为同一进程中的一个或多个服务具有不兼容的服务 SID 类型设置),请按照以下步骤操作这里

w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time

然后按照上述操作即可。


注 2:如果 NTP 服务在重启时没有自动启动,则可能是由于其启动设置,如所述这里:根据您的 Windows,它可能设置为仅在加入域时启动。您可以使用以下命令进行检查:

sc qtriggerinfo w32time

如果将其配置为在您加入域时启动,并且您的计算机中没有设置域,则它将不会启动服务并设置时间。它可能不会加入域,因为您不希望它这样做。无论如何,只需更改启动它的触发器即可。例如,要在计算机有网络时启动(因此能够访问服务器),请执行以下操作:

sc triggerinfo w32time start/networkon stop/networkoff

答案4

使用:

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.it.pool.ntp.org 1.it.pool.ntp.org 2.it.pool.ntp.org 3.it.pool.ntp.org"
net start w32time
w32tm /config /update
w32tm /resync /rediscover

.bat 示例文件位于https://gist.github.com/thedom85/dbeb58627adfb3d5c3af

我也推荐这个程序:http://www.timesynctool.com/

相关内容