上家公司有碰到过PDC主机时间异常导致客户端时间异常的问题,当时没有解决。最近正好看到,就想试试能否解决一下。

论坛搜索了,照着帖子中的都测试了,没有成功。网上也搜了很久,最后一篇文章给了我不少启发。

http://gnaw0725.blog.51cto.com/156601/660266
下面的内容是我经过反反复复的测试后得出的结论。与上述链接中的内容并不完全一致。有条件的你可以在虚拟机中测试,相信我的测试不会让你失望。

帖子中会反复出现的命令:

w32tm 这个命令需要开启"Windows Time"的服务。

w32tm /query /source 查询时间同步源

w32tm /query /peers 查询时间同步服务器及相关情报

w32tm /resync 手动与时间服务器同步时间

net stop w32time & net start w32time 重置windows time 服务

NTP Server列表见最后,本文用1.cn.pool.ntp.org为例。


首先,通常情况下,在域环境下,PDC主机就是权威时间服务器。它就是一台NTP Server。所以,我们不需要将它配制成NTP Server。而是要配置它作为NTP Client的Server来同步外部时间,以保证本地时间的正确性。
注:PDC作为非域环境下的NTP Server时,不需要做任何特别的设置,即是NTP Server。(非域环境下的08R2作为NTP Server见最后。)

设置(作为NTP Client的)PDC的NTP Server步骤如下:
默认情况下,在一台域内客户端和还没有设置NTP ServerPDC上测试如下命令。
客户端
C:\Windows\system32>w32tm /query /source  
WIN-NERHPM4B8ET.xifan.sz.com 时间源,PDC主机

C:\Windows\system32>w32tm /query /peers
#对等数: 1
对等: WIN-NERHPM4B8ET.xifan.sz.com
状态运行中
剩余时间:1020.8702908s  下一次同步时间
模式:3 (客户端
层次: 0 (未指定)
对等机轮询间隔: 0 (未指定)
主机轮询间隔: 10 (1024s)

C:\Windows\system32>w32tm /resync
 resync 命令发送到本地计算机
发送成功


PDC
C:\Users\Administrator>w32tm /query /source
Local CMOS Clock (即BIOS时间)


C:\Users\Administrator>w32tm /query /peers
#对等数: 1
对等:
状态挂起
剩余时间: 3063.4058575s
模式:0 (保留)
层次: 0 (未指定)
对等机轮询间隔: 0 (未指定)
主机轮询间隔: 0 (未指定)

可以看到,域客户端获取时间就是从PDC主机。而默认PDC主机没有NTPServer
设置方法有两种。
一种是:

通过PDC修改本地组策略来实现。注意,是本地组策略。不是域组策略

基本上,有了域组策略,本地组策略就弃用了。而这里正好用得到。效果就是只要域组策略相关配置是未配置,那本地组策略就只对PDC主机起作用。

在运行中输入gpedit.msc进入。

先修改外面的全局配置设置。改为启用,然后将那两个数值修改的大一点,否则无法同步超过48小时的时间差。

【AD】【Server2008R2】 PDC NTP Client/NTP Server的设置 ... 

如果不设置这个,时间差超过48H时会出现如下错误。

【AD】【Server2008R2】 PDC NTP Client/NTP Server的设置 ...


启用Windows NTP客户端,启用配置WIndows NTP 客户端并配置如下内容。

【AD】【Server2008R2】 PDC NTP Client/NTP Server的设置 ...

也可以设置多个server"1.cn.pool.ntp.org,2.cn.pool.ntp.org",用逗号隔开

同步刷新时间单位是S

不需要重启,直接生效。如果不行就重置下Windows Time.

我们来测试:
C:\Users\Administrator>w32tm /query /source
1.cn.pool.ntp.org

C:\Users\Administrator>w32tm /query /peers
#对等数: 1
对等: 1.cn.pool.ntp.org,2状态运行中
剩余时间: 58.5711904s
模式:3 (客户端)
层次: 2 (次引用 - (S)NTP 同步)
对等机轮询间隔: 15 (32768s)
主机轮询间隔: 6 (64s)
-------------
将时间更改一下,然后尝试手动同步测试效果。

C:\Windows\system32>w32tm /resync
 resync 命令发送到本地计算机
发送成功

好,到这里第一种方法配置完毕。要看自动同步是否有效,就更改时间后等一段时间。



第二种方法非常简单。
输入如下命令即可:

C:\Users\Administrator>w32tm /config /update /manualpeerlist:1.cn.pool.ntp.org /syncfromflags:manual /reliable:Yes
成功地执行了命令。

这样就设置好了,默认同步频率是60S

比较推荐用第一种方法。改动比较方便。


第三种方法是用外部工具。【NTP】服务器时间同步工具(NTPClock)2.1绿色中文版 ,这个工具很好用。如果因为种种原因,Server无法设置好的话,那就用这个好了,效果很好。
--------------------------------------------
域客户端的更新频率
经过测试,默认情况下,域客户端同步频率是1024S,大概17分钟左右。

如果觉得慢的也可以更改,只是方法比较麻烦。

有需要再回复讨论吧。



NTP Server地址:

常用:
1.cn.pool.ntp.org
2.cn.pool.ntp.org
3.cn.pool.ntp.org
0.cn.pool.ntp.org
cn.pool.ntp.org
tw.pool.ntp.org
0.tw.pool.ntp.org
1.tw.pool.ntp.org
2.tw.pool.ntp.org
3.tw.pool.ntp.org

国内:

s2a.time.edu.cn 清华大学
s2b.time.edu.cn 
清华大学
s2c.time.edu.cn 
北京邮电大学
s2e.time.edu.cn 
西北地区网络中心
s2f.time.edu.cn 
东北地区网络中心
s2g.time.edu.cn 
华东南地区网络中心
s2k.time.edu.cn CERNET
桂林主节点
s2m.time.edu.cn 
北京大学  ok


国际

time-a.nist.gov 129.6.15.28 NIST, Gaithersburg, Maryland 
time-b.nist.gov 129.6.15.29 NIST, Gaithersburg, Maryland
 
time-a.timefreq.bldrdoc.gov 132.163.4.101 NIST, Boulder, Colorado
 
time-b.timefreq.bldrdoc.gov 132.163.4.102 NIST, Boulder, Colorado
 
time-c.timefreq.bldrdoc.gov 132.163.4.103 NIST, Boulder, Colorado
 
utcnist.colorado.edu 128.138.140.44 University of Colorado, Boulder
 
time.nist.gov 192.43.244.18 NCAR, Boulder, Colorado
 
time-nw.nist.gov 131.107.1.10 Microsoft, Redmond, Washington
 
nist1.symmetricom.com 69.25.96.13 Symmetricom, San Jose, California
 
nist1-dc.glassey.com 216.200.93.8 Abovenet, Virginia
 
nist1-ny.glassey.com 208.184.49.9 Abovenet, New York City
 
nist1-sj.glassey.com 207.126.98.204 Abovenet, San Jose, California
 
nist1.aol-ca.truetime.com 207.200.81.113 TrueTime, AOL facility, Sunnyvale, California
 
nist1.aol-va.truetime.com 64.236.96.53 TrueTime, AOL facility, Virginia


---------------------------------------------------------------------------
通常的Server2008R2要作为NTP Server,只需要做两个改动即可。

1.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer内的[Enabled]设定为1。 


2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags设定为5. 
  该设定强制主机将它自身宣布为可靠的时间源。


-------------------------------------------------------------------------------------------排错相关:
1.端口未通
查看防火墙有无禁止
使用netstat -ano |findstr 123 查看123端口是否开启是否有被占用,后面的PID是进程PID。可以用tasklist 查看PID
2.进程有无开启,用net start查看最后有无windows time .
3.就是上述步骤。