我们有一个双域 Active Directory 林:根域为 ourcompany.com,生产服务器为 prod.ourcompany.com。时间通过根域正确传播,但子域中的服务器无法通过 NTP 同步。因此,这些服务器上的时间开始漂移,因为它们仅依赖硬件时钟。
当我在其中一台生产服务器上输入“网络时间”时,出现以下错误:
Could not locate a time-server.
More help is available by typing NET HELPMSG 3912.
当我输入“w32tm /resync”时,我得到以下信息:
Sending resync command to local computer
The computer did not resync because no time data was available.
“w32tm /query /source”显示以下内容:
Free-running System Clock
我们在 prod.ourcompany.com 子域中有三个域控制器(有点过分,但这是迁移的结果 - 我们还没有摆脱其中一个旧控制器。)更复杂的是,域控制器都是虚拟化的,在两个不同的物理主机上运行。但域控制器本身的时间是准确的 - 不是 DC 的服务器才是有问题的服务器。
其中两个 DC 运行的是 Server 2003,包括 PDC 模拟器。第三个 DC 运行的是 Server 2008。(如果有帮助的话,我可以将 PDC 模拟器角色移到 2008 机器上。)非 DC 服务器都运行的是 Server 2008。
所有其他 Active Directory 功能在生产域中运行良好 - 我们只看到 NTP 存在问题。
我可以通过执行以下操作将每台机器手动同步到时间源(PDC 模拟器):
net time \\dc1.prod.ourcompany.com /set /y
但这只是一次性的,它不会导致自动时间同步开始工作。我想我可以创建一个定期运行上述命令的计划任务,但我希望有更好的方法。
有人知道为什么这不起作用吗?我们可以做些什么来解决这个问题?
谢谢你的帮助,
理查德
答案1
在托管正确时间的 PDC 上尝试此操作
NET TIME /SETSNTP:time.windows.com
NET STOP W32TIME
NET START W32TIME
W32TM /config /reliable:YES
W32TM /resync /rediscover
然后在每个“客户端” NTP 机器上
W32TM /resync /rediscover
答案2
您的前两个步骤是确保没有任何事情浪费您的时间。
- 在给您带来麻烦的 DC 上使用 w32tm /query /configuration,如果任何输出显示“policy”而不是“local”,则意味着有一个组策略正在干扰它们。无论如何,我都会仔细检查组策略。删除它们并运行“Gpupdate /force”,然后验证它们是否设置为本地。
- 如果您正在使用 Hyper-V,您需要检查虚拟化域控制器上是否启用“时间同步”集成服务。
一旦验证了这两件事,请按照以下步骤将 PDC 同步到 NTP 池;比 Windows NTP 服务器更可靠的来源。
W32tm /config /syncfromflags:manual /manualpeerlist:"us.pool.ntp.org"
W32tm /config /reliable:yes
W32tm /config /update
Net stop w32time && Net start w32time (Alternatively, reboot if you can)
W32tm /resync /rediscover
如果它仍然无法在 PDC 上同步,您可能需要取消注册并重新注册 w32tm 服务。
w32tm /unregister
Reboot
w32tm /register
Reboot
Run commands listed above again if it’s a PDC.
如果客户端或成员 DC 不同步,首先尝试执行“gpupdate /force”来更新组策略。
如果这仍然不起作用:
Run w32tm /resync” from an elevated command prompt
或者在旧系统上:
net time /set (Say “Y” when prompted)
如果仍然不起作用,请运行:
w32tm /config /syncfromflags:domhier /update
重新启动计算机并强制重新同步,如上所示。