对于加入域环境的客户端是与在父域中的权威服务器进行时间同步的。默认的同步时间的方法就是使用域层次,客户端会使用其所连接域中的域控来同步时间,而域控会反过来从整个林中的权威时间源来同步时间。如果在森林的根域中没有指定某个域控为权威时间源,那么拥有
PDC
角色域控会担当这个权威时间服务器。这台
PDC
会使用自己内部的时钟来为整个林的域控提供时间。
1.
如何保证所有域控制器和层次结构的
PDC
同步时间?如何保证所有成员服务器(客户端)与验证服务器同步时间。
由于
PDC
是林中默认的时间源,因此我们必须确保这个
DC
是永远在线的。如果我们发现
PDC
负载过高的话,那么就应该使用林中另外一台域控做为权威的时间源。
在森林根中的权威时间源获取时间的方式有两种。第一种就是从内网中所安装的硬件时钟设备上去获取时间。第二种就是从外部的时间服务器去获取时间。需要注意的是,如果我们没有配置权威时间服务器是从内部获取时间还是从外部获取时间,那么
PDC
就会使用其自己的内部时钟,也就是整个森林可靠的时间源了。
在与外部时间源进行同步时,我们是使用
NTP
协议来进行同步的,但
NTP
协议使用的是
UDP 123
这个端口,因此我们一定要确保这个端口的入站和出站流量,以确保
windows
时间服务的正常工作。
也就是说,我们首先要保证默认情况下这个
PDC
这个时间源要是正确的,那么客户端与服务端就会自动进行同步了。否则就无法靠域的层级结构来同步整个域的时间了。
2.
所有与服务器、
PDC
服务器时间各不相同。该如何检查?
如果想使用默认的
PDC
来作为权威的时间源,建议是这样的
1)
首先确保
PDC
时间源才准确性,通常建议
PDC
使用外部的权威时间源(这样可以减少时间偏差和我们管理工作量)。
我们先通过下面的命令来检查,
PDC
现在的所使用时间源的状态:
w32tm /query /configuration
2)
如果我们想要指定外部权威时间服务器作为源,我们可以使用,下面这个命令:
w32tm /config [/computer:
目标计算机
] [/update] [/manualpeerlist:peers] [/syncfromflags:flag] [/reliable: (yes|No)]
例如:
w32tm /config /update /manualperrlist:time.windows.com,time.nist.gov,time-nw.nist.lov /syncfromflags:manual /reliable:Yes
使用这个命令我们就把
PDC
设置成了使用
time.windows.com, time.nist.gov, time-nw.nist.lov
这三个作为时间源,并且是森林中的权威时间服务器。我们可以通过上面的方法,来对我们觉得有必要的所有服务进行配置。
3)
如果客户端中的
windows
时间服务有问题的话,我们可以通过下面的方法来重置这个服务(恢复到默认状态)。
1
、打开命令行
2
、键入
net stop w32time
来停止这服务
3
、键入
w32tm /unregister
来删除现在的
w32
时间服务配置
4
、键入
w32tm /register
来导入默认的时间配置
5
、键入
net start w32time
来开启这个服务。
4)
如果上面所述的方法还是不能解决我们的问题,我可以使用下面的方法来启用客户端上的
windows
时间服务日志文件来进行排错。
1.
启动注册表编辑器。
2.
找到并单击下面的注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
3.
在
编辑
菜单上单击
新值,然后添加以下注册表值:
·
值名称:
FileLogSize
数据类型:
DWORD
值数据:
10000000
·
值名称:
FileLogName
数据类型:
字符串
值数据:
C:\Windows\Temp\w32time.log
·
值名称:
FileLogEntries
数据类型:
字符串
值:
300
4.
在有问题的客户端上运行这个命令
w32tm /config /update
5.
收集这个日志文件,与
PDC
和
任意两台有问题
DC
的时间服务配置信息(
w32tm /query /configuration
)
还有一些相关的问题,请参考如下问答:
1
、域控制器和
PDC
之间同步时间这个是理论上。但是它们之间同步是否有一个确定的标准或机制?如果没有他们之间时间同步我是否可以通过一些日志或文件证明他们的同步。
首先,
Windows
时间服务是设计用来同步网络上计算机的时钟的。网络时钟同步的过程,也叫做时间收敛,这个过程发生于当每个计算机通过网络访问来自一个更可靠时间服务器时。时间收敛这个过程,涉及一个权威服务器把当前的时间以
NTP
包的形式发送给每个客户端计算机。而在这个包中所提供的信息表示了是否需要调整客户端计算机当前的时钟时间,这样就可以与更准确的服务器进行同步了。
作为时间收敛过程的一部分,域成员会试图与其在相同域内的域控进行同步时间。如果该计算机就是域控,那么它会试图与更权威的域控进行同步。
关于我们是否可以验证他们之间是否同步的问题,其实也就是监测的问题:要监测某个特定域中或计算机上的时间服务时,我们可以使用
/monitor
参数。该命令的基本语法如下:
w32tm /monitor [/domain:
域名
] [/computers:
计算机
1
,计算机
2
,计算机
3
,…
] [/threads: N]
这里,域名是指要监测的域的
DNS
名,和由
DNS
名或
IP
地址指定的计算机名。如果我们没有指定某个域或计算机,那么就会使用目前我们所登录的这个域。我们要确保计算机名之间用逗号隔开,并且没有空格。
/thread
参数指定了同时分析的计算机数量。默认的值是
3
;而允许的范围值在
1
至
50
之间。
2
、成员服务器和客户端与它们验证服务器间同步。每台
DC
的时间不一样,经过检查是它们是通过各自的硬件时钟同步的。针对这类型问题是如何引起的?怎样进一步去确认?
针对这个问题,就像我们之前说的那样,默认情况下
DC
是会去找
PDC
去同步时间的,至于为什么会变成通过各自的硬件时钟去同步,这有很多种多可能的原因,如第三方程序的干预等等。但如果
Windows time service
工作是正常的话,那么我们也就没必要去找其中的原因了,只有当与我们的预期不符时,我们需要知道它到底在干什么的时候,我们可以通过启用在我上一次回复中的
Debug log
来看时间服务到底在干什么。
3
、关于无法运行命令
w32tm /query
,及其
w32tm /register
的问题
如果无法运行这个命令是因为这个命令是
windows vista
和
windows server 2008
时引入的。那么我们可以换一种办法来查看这个状态,我们可以查看这个注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\
·
Nosync
表示客户端没有同步时间(就是所谓的硬件时钟)
·
NTP
表示客户端从外部时间源同步时间,并且
NTPServer
字段定义了这个时间源
·
NT5DS
表示客户端配置了使用域架构作为自己的时间同步
·
AllSync
表示客户端会从任何可靠的时间源处同步时间,包括域结构和外部时间源的。
就该注册表项而言,在
DC
上默认值是
NT5DS
,在独立的客户端或服务器上是
NTP
。
w32tm /register
这个命令不需要指定某个时间源,因为这个命令的用意是,把时间服务注册一下并向注册表添加默认的值。而这个默认值会牵涉到许多的注册表项,因此可以通过下面的这篇文档来进一步了解。
本文转自daniel8294 51CTO博客,原文链接:http://blog.51cto.com/acadia627/947235,如需转载请自行联系原作者