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


65

我需要在某些Windows系统上验证当前的NTP配置。理想情况下,我希望能够通过命令行而不是在配置屏幕中进行导航。

(我正在使用多个不同的OS版本,并且配置屏幕往往在各个版本中并不总是位于同一位置。)

我希望找到一个快速,令人难忘的命令,我可以将其打入CMD控制台以获取结果。不过,我可以随身携带的批处理文件也一样。

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

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

要获得这些结果,需要什么命令?

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


我知道要检查时间,您可以执行“ net time \\ computername”以获取远程PC的时间。我不认为网络时间可以让您查看上次同步,但是...“网络时间?” 提供了一个设置选项,所以它就像您要查找的内容的1/2。
Supercereal

我刚刚发现@Kyle net time /querysntp显示了服务器。获取其余的内容可能很棘手。
伊兹(Iszi)2012年

3
在Windows 7中,不建议使用net time / querysntp。
丹尼尔(Daniel)

Answers:


82

在命令行中,键入

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时间客户端版本中提供了此功能。请参阅Windows时间服务工具和设置。


5
在XP上不好。“命令/查询未知。”
伊齐(Iszi)2012年

time /t和任务栏右下方显示的时间有什么区别?
Pacerier,2014年

首先,w32tm /query /configuration我得到“发生以下错误:访问被拒绝。(0x80070005)”。我认为我有足够的权利。
彼得·莫滕森

3
您需要在该命令的提升权限的命令窗口中。
菲利普·

16

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

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

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (您想要多少个退货)

它将时间和时差返回到NTP服务器时间。如果返回时间,则错误:0x80072746则不是您的NTP服务器。

下面是一个命令示例:

命令示例


您能格式化这个答案吗?
Ramhound '16

它自我格式化的方式很奇怪。已修改
拜伦

8

我试过了:

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


3

在命令行中,您可以获取如下信息:

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

似乎至少应该足以朝那个方向前进,也就是说,如果我理解您的问题。在AFAIK中,只要您运行了正确的服务,“ reg”命令就可以在所有这些不同的平台上运行。


我得到:“错误:系统无法找到指定的注册表项或值。” 原来W32Time尚未启动...
msb

那么“ [\\machine\]”意味着如果在同一台机器上可以将其忽略掉?
彼得·莫滕森

2

看一看w32tm命令行工具。它可以设置和查询配置,并在另一台计算机上报告时间偏移的/ stripchart。


1
/query选项在XP上不可用。
伊兹(Iszi)2012年

5
尝试net time /querysntp
弗兰

1
@Fran可行。我希望获得一个跨平台的命令,但是似乎我可能必须使用两个不同的命令-或编写一个包含平台检测的批处理文件来确定要运行的命令。
伊齐(Iszi)2012年

1
@lszi在我的脚本中,我测试C:\ users的存在。如果找到该文件夹​​,则表明我在XP后包装盒中。
弗兰

1
@Fran您能写出包含两个命令的答案吗?另外,我将使用什么命令来检查XP的上次成功同步时间?
Iszi 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.