Isz*_*szi 80 windows command-line date-time ntp batch-file
我需要在某些 Windows 系统上验证当前的 NTP 配置。理想情况下,我希望能够通过命令行执行此操作,而不是在配置屏幕中导航。
(我正在处理几个不同的操作系统版本,并且配置屏幕在不同版本之间往往并不总是位于同一位置。)
我希望找到一个快速、令人难忘的命令,我可以将它打入 CMD 控制台以获得结果。不过,我可以随身携带的批处理文件也可以。
具体来说,我需要以下内容:
实现这些结果需要什么命令?
寻找与 Windows XP、7、Server 2003 和 Server 2008 交叉兼容的解决方案。
Phi*_* R. 93
在命令行中,键入
w32tm /query /configuration
w32tm /query /status
Time /T
Run Code Online (Sandbox Code Playgroud)
w32tm /query /configuration 为您提供已设置的配置。
w32tm /query /status 为您提供信息,例如:
time /T 输出当前系统时间。
注意:w32tm /query首先在 Windows Vista 和 Windows Server 2008 的 Windows 时间客户端版本中可用。请参阅Windows 时间服务工具和设置
小智 20
这回答了您的最后一个问题:
打开命令提示符并准确键入:
w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (你想要多少回报)
它将时间和差异返回到 NTP 服务器时间。如果它返回 time, error: 0x80072746 那么那不是您的 NTP 服务器。
命令的示例如下:
msb*_*msb 10
我试过:
w32tm /query /status
Run Code Online (Sandbox Code Playgroud)
我有:
The command /query is unknown.
Run Code Online (Sandbox Code Playgroud)
在另一台机器上,我得到:
The following error occurred: The service has not been started. (0x80070426)
Run Code Online (Sandbox Code Playgroud)
然后我尝试:
reg QUERY [\\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time
Run Code Online (Sandbox Code Playgroud)
我有:
ERROR: The system was unable to find the specified registry key or value.
Run Code Online (Sandbox Code Playgroud)
然后我尝试:
net time /querysntp
Run Code Online (Sandbox Code Playgroud)
我有:
This computer is not currently configured to use a specific SNTP server.
Run Code Online (Sandbox Code Playgroud)
在另一台机器上,我得到了帮助页面,还说:
The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.
Run Code Online (Sandbox Code Playgroud)
所以,基本上,服务没有运行。按照这些说明,我做了:
w32tm /unregister
w32tm /unregister
w32tm /register
net start w32time
Run Code Online (Sandbox Code Playgroud)
最后,以上所有方法都会起作用。(注意:如果net start失败,见下文)然后我只需要设置我的 ntp ......我做到了:
w32tm /config /manualpeerlist:10.0.0.5 /syncfromflags:manual /reliable:yes /update
Run Code Online (Sandbox Code Playgroud)
按照此处的说明进行操作,但也许它可以像以下一样简单:
net time /setsntp:10.0.0.5
Run Code Online (Sandbox Code Playgroud)
按照这里的指示。(10.0.0.5 是我的本地 NTP 服务器)。如果您不使用本地 NTP 服务器,则可以使用通用服务器:
w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /reliable:yes /update
Run Code Online (Sandbox Code Playgroud)
最后,您可能需要执行以下操作,这对我来说不是必需的:
w32tm /config /update
w32tm /resync /rediscover
Run Code Online (Sandbox Code Playgroud)
注意:如果net start w32time失败并出现错误 1290(服务启动失败,因为同一进程中的一个或多个服务具有不兼容的服务 SID 类型设置),请按照此处的步骤操作:
w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time
Run Code Online (Sandbox Code Playgroud)
然后按照上面的操作。
注2:如果NTP服务不会自动重新启动上启动,这可能是由于它的启动设置,描述在这里:根据您的Windows,它可能被设置为开机,只有当它加入一个域。您可以通过以下方式检查:
sc qtriggerinfo w32time
Run Code Online (Sandbox Code Playgroud)
如果它配置为在您加入域时启动,而您的计算机中没有设置域,则它不会启动服务并设置时间。它可能不会加入域,因为您不希望它加入。无论如何,只需更改启动它的触发器即可。例如,要在机器有网络(因此能够访问服务器)时启动,请执行以下操作:
sc triggerinfo w32time start/networkon stop/networkoff
Run Code Online (Sandbox Code Playgroud)
小智 5
用:
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
Run Code Online (Sandbox Code Playgroud)
.bat 示例文件位于https://gist.github.com/thedom85/dbeb58627adfb3d5c3af。
我也推荐这个程序:http : //www.timesynctool.com/
从命令行您可以获得如下信息:
reg QUERY [\\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
reg QUERY [\\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
Run Code Online (Sandbox Code Playgroud)
看来,如果我理解你的问题,至少应该足以朝这个方向前进。AFAIK,只要您运行了正确的服务,“reg”命令就可以在所有这些不同的平台上运行。
| 归档时间: |
|
| 查看次数: |
1252051 次 |
| 最近记录: |