如何在 Windows 工作站或服务器上强制同步时间?

Kyl*_*ndt 110 windows time

将 Windows 工作站或服务器同步到其配置的时间源的命令是什么?

Sea*_*ist 105

正如凯尔所说,这w32tm /resync是做到这一点的现代方式。有关w32tm 命令的详细信息,请参阅此Microsoft 知识库链接 (KB 307897)

还有net time哪个是旧版本,但可能更容易。

  • `w32tm /resync` 说“计算机没有重新同步,因为所需的时间变化太大。” 因为我的 CMOS 电池没电了,我的计算机时钟在 2000 年 1 月 1 日凌晨 12:00 每次启动时都会重置。有什么帮助吗? (6认同)
  • @LightnessRacesinOrbit 和其他人,如果您收到“时间变化太大”错误,请使用 `w32tm /resync /force`。但是如果你没有启动服务,运行`net start w32time`。两者都来自提升的提示。 (4认同)
  • 要解决“时间变化太大”,请将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config 中的注册表项 MaxNegPhaseCorrection 和 MaxPosPhaseCorrection 更改为最大值 (ffffffff) (4认同)
  • 链接已损坏。 (2认同)

小智 51

对于那些仍然问这个问题的人。

  1. 要更新,请使用以下命令(2008 和 2012 服务器兼容)

    w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update
    
    Run Code Online (Sandbox Code Playgroud)

使用您的源更改 ntp_server

  1. 重启时间服务

    net stop w32time
    net start w32time
    
    Run Code Online (Sandbox Code Playgroud)
  2. 重新同步时间

    w32tm /resync
    
    Run Code Online (Sandbox Code Playgroud)
  3. 验证您的同步状态

    w32tm /query /status
    
    Run Code Online (Sandbox Code Playgroud)

如果您的源工作正常和/或您的连接正常(防火墙或 Microsoft Forefront 也可能是一个问题),上面的命令应该没问题。下面的命令可以帮助排除故障

列出同行

w32tm /query /peers
Run Code Online (Sandbox Code Playgroud)

列出 NTP 源:

w32tm /query /source
Run Code Online (Sandbox Code Playgroud)

  • 对于故障排除,测试与特定服务器的连接通常很有用:`w32tm /monitor /computers:time.windows.com` (2认同)

Kyl*_*ndt 25

您可以使用以下命令:

w32tm /resync


Bre*_*son 20

您可以使用:

w32tm /resync
Run Code Online (Sandbox Code Playgroud)

此外,使用w32tm /resync /rediscover还将“在重新同步之前强制重新检测网络资源”。

或使用:

net time /set
Run Code Online (Sandbox Code Playgroud)

会提示你设置时间到DC。(适用于旧版本的 Windows)

  • 出于某种原因,`w32tm /resync` 对我不起作用,但`net time /SET /Y` 可以。我将 `/Y` 用于 `net time`,因为它在从 cygwin 中通过 sshd 时显然没有正确读取 stdin。 (3认同)
  • 运行“w32tm /resync”时,我收到消息“计算机没有重新同步,因为没有可用的时间数据。”即使在服务重新启动后,但“net time /SET”对我来说工作正常。 (2认同)

小智 7

  • 更改您的时间服务器
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org" /syncfromflags:manual /update
Run Code Online (Sandbox Code Playgroud)
  • 提前更新时间
w32tm /resync /force
Run Code Online (Sandbox Code Playgroud)


maj*_*tor 6

如果配置了 ntp 服务器,则 Powershell 一行:

gsv w32time | sasv; w32tm /resync /force

如果 CMOS 电池出现故障,您可以将此 .bat 文件放入启动中,以便它可以在操作系统启动时重新同步:

@powershell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'
Run Code Online (Sandbox Code Playgroud)


Ako*_*kos 5

操作系统:微软Windows 7

以上所有想法都已尝试过,但没有帮助。原来的问题仍然存在:“计算机没有重新同步,因为所需的时间变化太大。

解决办法在注册表中找到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config

  • 如果当地时间很赶(例如 2050 年 12 月 31 日),请更改此设置:MaxNegPhaseCorrection
  • 如果本地时间延迟(例如 1-Jan-1980),请更改此设置:MaxPosPhaseCorrection
  • 默认值为 0xD2F0(即 54000 秒 = 15 小时)

(使用谷歌了解更多详情)

我使用win_clock_sync.bat“开始”菜单启动中的这个简单文件:

echo off
echo Sync computer time from internet
echo.
echo Back-up registry w32time\Config
reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config exported_w32time.reg /y
rem changing the registry keys temporarly:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxNegPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxPosPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
echo.
echo w32tm /config /update
w32tm /config /update
echo.
echo w32tm /resync /rediscover 
w32tm /resync /rediscover 
echo.
echo Restore registry w32time\Config
reg import exported_w32time.reg
Run Code Online (Sandbox Code Playgroud)

享受!:-)