我在一家牙科诊所工作(不是 IT 专业人士,所以写了这篇文章哈哈),我们有几台使用 Windows 10 的计算机,它们运行在一个使用 Windows Server 2012 的域中。域控制器上的时间是正确的,但域中普通计算机上的时间却相差了几分钟,这会干扰我们用来安排预约的软件。
在 PDC 上的命令提示符中,我运行
w32tm /config /manualpeerlist:time.windows.com /syncfromflags:manual /reliable:yes /update
net stop w32tm
net start w32tm
w32tm /resync /rediscover
但它说“计算机没有重新同步,因为没有可用的时间数据。”
我已将“默认域策略”和“默认域控制器策略”组策略下的 Windows 时间服务的所有内容设置为“未配置”(我不知道哪一个对此很重要)。此外,在普通计算机上,我运行w32tm /config /syncfromflags:domhier /update
注册表编辑器并验证了类型值已设置为“NT5DS”。
此外,w32tm /query /configuration
显示 time.windows.com 是服务器,但运行w32tm /query /source
显示源仍然是“本地 CMOS 时钟”,如果无法连接到 NTP 服务器,这显然是默认设置。所以这是连接问题,对吧?据我所知,可能是我的防火墙阻止了连接,因此在 Windows 防火墙高级设置中,我为 UDP 端口 123 的出站和入站调用添加了新规则,这显然是 NTP 使用的端口。我安装了 netcat 并尝试了,ncat -u -v -z -w 2 time.windows.com 123
似乎成功了,所以我不确定问题是什么。我还听说 time.windows.com 有点糟糕,所以如果没有人有解决方案,也许我可以尝试不同的时间服务器。
再说一遍,我不知道自己在做什么,我只是离开互联网和 ChatGPT,所以希望有人能指出我遗漏了什么。谢谢!
编辑w32tm /query /configuration
以下是客户端和服务器上的“时间提供商”部分:
客户:
[TimeProviders]
NtpClient (Local)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Local)
Enabled: 1 (Local)
InputProvider: 1 (Local)
CrossSiteSyncFlags: 2 (Local)
AllowNonstandardModeCombinations: 1 (Local)
ResolvePeerBackoffMinutes: 15 (Local)
ResolvePeerBackoffMaxTimes: 7 (Local)
CompatibilityFlags: 2147483648 (Local)
EventLogFlags: 1 (Local)
LargeSampleSkew: 3 (Local)
SpecialPollInterval: 3600 (Local)
Type: NT5DS (Local)
NtpServer (Local)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Local)
Enabled: 0 (Local)
InputProvider: 0 (Local)
服务器:
[TimeProviders]
NtpClient (Local)
DllName: C:\Windows\system32\w32time.DLL (Local)
Enabled: 1 (Local)
InputProvider: 1 (Local)
AllowNonstandardModeCombinations: 1 (Local)
ResolvePeerBackoffMinutes: 15 (Local)
ResolvePeerBackoffMaxTimes: 7 (Local)
CompatibilityFlags: 2147483648 (Local)
EventLogFlags: 1 (Local)
LargeSampleSkew: 3 (Local)
SpecialPollInterval: 3600 (Local)
Type: NTP (Local)
NtpServer: 0.pool.ntp.org,0x8 1.pool.ntp.org,0x8 2.pool.ntp.org,0x8 3.pool.ntp.o
rg,0x8 (Local)
NtpServer (Local)
DllName: C:\Windows\system32\w32time.DLL (Local)
Enabled: 1 (Local)
InputProvider: 0 (Local)
AllowNonstandardModeCombinations: 1 (Local)
VMICTimeProvider (Local)
DllName: C:\Windows\System32\vmictimeprovider.dll (Local)
Enabled: 0 (Local)
InputProvider: 1 (Local)
我还查看了 PDC 上的事件日志,发现在过去 8 个月中它时不时会记录以下警告:
时间服务已 86400 秒未同步系统时间,因为没有时间服务提供商提供可用的时间戳。时间服务不会更新本地系统时间,直到它能够与时间源同步。如果本地系统配置为充当客户端的时间服务器,它将停止向客户端宣传其时间源。时间服务将继续重试并与其时间源同步时间。检查系统事件日志中的其他 W32time 事件以了解更多详细信息。运行“w32tm /resync”以强制即时时间同步。
在客户端事件日志中,我在时间服务下有这些内容:
信息:
时间提供程序“VMICTimeProvider”指示当前硬件和操作环境不受支持并且已停止。对于非 HyperV 客户机环境中的 VMICTimeProvider,此行为是预期行为。对于当前操作环境中的当前提供程序,这也可能是预期行为。
警告:
由于发现错误,NtpClient 无法设置域对等体以用作时间源。NtpClient 将在 15 分钟后重试,然后将重试间隔加倍。错误为:未找到条目。(0x800706E1)
信息:
时间提供程序 NtpClient 当前正在从 pool.ntp.org,0x8 (ntp.m|0x8|0.0.0.0:123->131.243.64.12:123) 接收有效时间数据。
警告:
时间提供程序 NtpClient:尝试联系域控制器 Server.Dental.local 8 次后,未收到有效响应。此域控制器将不再作为时间源,NtpClient 将尝试发现要同步的新域控制器。错误为:无法访问对等方。
与 PDC 上出现的类似,警告:
时间服务在过去 86400 秒内未同步系统时间,因为没有一个时间服务提供商提供可用的时间戳。时间服务将不会更新本地系统时间,直到它能够与时间源同步。如果本地系统配置为充当客户端的时间服务器,它将在 0 秒后停止向客户端宣传其时间源。时间服务将继续重试并与其时间源同步时间。检查系统事件日志中是否有其他 W32time 事件以了解更多详细信息。运行“w32tm /resync”以强制即时时间同步。您可以使用 ClockHoldoverPeriod W32time 配置设置来控制时间源重新发现的频率。如果您希望禁用此消息,请修改 EventLogFlags W32time 配置设置。
显然有些事情出错了,只是我还没发现。
答案1
在 DC 上运行这些命令 - 主要区别在于强制其进入客户端模式(0x8
)而不是尝试发现其他来源:
w32tm /config /manualpeerlist:"time.windows.com",0x8 /syncfromflags:MANUAL
net stop "windows time"
net start "windows time"
w32tm /resync
然后在客户端上尝试运行w32tm /stripchart /computer:myServer.local
以验证它们是否可以与 DC 通信。如果可行,则尝试w32tm /resync
让它们立即同步。
答案2
我的域控制器也遇到了同样的问题。最后,我重新启动了时间同步服务器,它立即开始工作。因此,如果您要上网,请寻找其他时间网站。如果您使用自己的 ntp 服务器,请重新启动它。
答案3
一种解决方案是使用专用(免费)软件:
http://www.thinkman.com/dimension4/download.htm
该软件名为“Dimension 4”。
它有很多选项,您可以选择要同步时间的服务器。
它非常用户友好,其部分功能如下: