配置分为两步:第一步为域控服务器配置与阿里云NTP的时间同步;第二步通过组策略实现域内成员同步域控服务器的时间。
一、域控服务器配置NTP
1、 添加时间服务器地址(域名或IP)(下面这个键存放着时间服务器列表)
在右边窗口点右键新建“字符串值”,将此“字符串值”命名为6。双击此新建的“字符串值”,输入地址:ntp.aliyun.com,保存。将“默认”(即第一个“字符串值”)修改为6即可。前面的几个时间服务器分别为:
2、 指定时间源
3、 设置校时周期
4、重启服务
重启服务net stop w32time&net start w32time
5、验证配置情况
二、配置权威服务器及组策略
1、设置权威服务器
在域控服务器上打开注册表,找到键值
2、 启用 NTPServer
3、配置组策略,设置时间同步
4、域内成员同步策略
刷新组策略指令:gpupdate /force
重启服务net stop w32time&net start w32time
5、域内成员验证配置
三、填坑说明
如果在“Default Domain Policy”下添加时间同步策略,将会导致域控服务器也获取并执行策略,由于组策略的优先级较高,导致第一步配置的与阿里云NTP同步策略失效。使得域控服务器本身的时间准确性得不到保证。因此通过新建组织单位的方式,对除了域控服务器以外的计算机下发该策略。确保所有成员时间准确。
1)首先确认虚拟化底层的时间是否准确,因为所有虚拟机会自动同步虚拟主机的时间。
2)在所有AD服务器上开启时间同步功能
一、找到适合的NTP服务器
首先需要找一个适合自己网络环境的NTP服务器,因为不同的网络会有不同的NTP服务器起作用,检测NTP服务器的方法为在AD上运行 w32tm /stripchart /computer:NTP服务器域名或IP ,如 w32tm /stripchart /computer:182.92.12.11 ,若是可以使用会显示如下图
找到适合自己网络的可用NTP服务器后,假设找到182.92.12.11为可用NTP服务器,在AD服务器上开启时间同步,运行如下命令
三、设置主域控制器与国家授时中心服务器时间同步,同步周期为1天。
1、 添加时间服务器
在右边窗口点右键新建“字符串值”,将此“字符串值”命名为0。双击此新建的“字符串值”,输入: 182.92.12.11 ,保存。将“默认”(即第一个“字符串值”)修改为0即可,删除其他所有的值只保留如图所示的值
2、 指定时间源
修改键NtpServer的值为 182.92.12.11
3、 设置校时周期
修改键SpecialPollInterval的值为十进制的604800(即为604800秒,1天)
四、设置权威服务器
1、 设置权威服务器
在域控服务器上打开注册表,找到键值
修改键AnnounceFlags的值为十进制的10。
2、 启用 NTPServer
修改键Enabled的值为十进制的1
五、配置组策略,设置时间同步
1、 打开组策略管理
2、 在“Default Domain Policy”上右键,编辑。
3、 计算机配置—管理模板—系统—Windows时间服务,双击“全局配置设置”,选择“已启用”。
修改MaxNegPhaseCorrection的值为3600(即为3600秒,1小时)
修改MaxPosPhaseCorrection的值为3600(即为3600秒,1小时)
修改AnnounceFlags的值为5
点“应用”,“确定”。
4、 计算机配置—管理模板—系统—Windows时间服务—时间提供程序,“启用Windows NTP客户端”,选择“已启用”。
“配置Windows NTP客户端”,选择“已启用”。
修改NtpSever的值为 182.92.11
修改Type的值为NTP
修改SpecialPollInterval的值为1800(30分钟)
5、cmd命令在域控和客户端完成检测
域控上运行下面三条命令检测,返回成功执行了命令即为成功。若是返回此计算机没有重新同步,因为没有可用的时间数据。请排查上述文档中一步时间服务器是否可用,和五-4步服务器是否正确,看w32tm /query /source命令返回的结果是否正确。
域内的客户端想要同主域时间同步,执行下面的命令,返回成功执行了命令即为成功
注意时间若想成功同步,时间不能跟标准时间差别太大,在范围内的才能成功同步。
1、系统时间比标准时间系统时间晚14小时59分钟之内
2、系统时间比标准时间早30分钟之内
3)对于有些客户端Windows Times服务会自动停止,可以尝试重新注册一下此服务项
1.首先,运行如下命令删除时间服务:
2.然后,再运行如下命令加载默认时间配置服务:
问题1: 在域控上面设置default domain policy对全域设置了时间同步参数,其中MaxPollInterval=10,MinPollInterval =8;我想请教一下,同步的时间间隔只能从这两个参数定义吗,能不能自定义。
通常我们如果通过注册表的方式配置域的时间同步的话,按照下面的注册表设置来配置:
===主域控制器===
1. PDC宣布它为NTP服务器:
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
Key Name: AnnounceFlags
Type: REG_DWORD (DWORD Value )
Data: 0x5
2. 将服务器类型更改为NTP:
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
Key Name: Type
Type: REG_SZ(String Value)
Data: NTP
3. 启用NTP服务器:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
Key Name: Enabled
Type: REG_DWORD
Data: 1
4. 指定哪个服务器充当NTP服务器:
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Key Name: NtpServer
Type: REG_SZ(String Value)
Data: Peers (example: time.windows.com, 0x9)
5.仅当我们的PDC计算机是虚拟机时,才需要设置此注册表。 如果它不是虚拟机,则没有有关此注册表的信息。
HLM\SYSTEM\CurrentControlSet\services\w32time\TimeProviders\VMICTimeProvider
Name: Enabled
Type: REG_DWORD
Data:0
===其他的域控制器和客户端===
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
Key Name: Type
Type: REG_SZ(String Value)
Data: NT5DS
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
Key Name: AnnounceFlags
Type: REG_DWORD (DWORD Value )
Data: 0xa
之后,使用命令 net stop w32time &&net start w32time 重新启动时间服务器。
0x1 为 NtpServer的Flag位,表示启用SpecialInterval。 它将会等待SpecialPollInterval 内设置的时间间隔再和时间源同步。
SpecialPollInterval
这个值指定了特定的取样时间间隔,当NtpServer值的SpecialInterval 0x1 标志设置后 (所以SpecialPollInterval只在时间同步方式为NTP时才有效,简单来讲,就是在PDC上此值才有意义),W32Time用这个时间间隔进行取样,单位为秒。默认值为3600秒。
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Key Name: NtpServer
Type: REG_SZ(String Value)
Data: Peers (time.windows.com,0x9)
NTP server键值中,timeserver,0x9的含义,有如下解释:
0x9其实是两种标识的组合,即0x1和0x8。在w32time中,共有4种基础标识。
0x1 specialinterval
0x2 useasfallbackonly
0x4 symmatricactive
0x8 client
具体可以参考这个文章: Parameters\NtpServer
总结:一般如果我们的环境中没有出现时间同步问题的情况下不建议修改对应的值,保持默认的就可以。一般如果有时间跳变或者精度问题,才可能要调整这两个值。请问我们的环境是否出现了什么问题。我们是觉得时间同步精度不够还是什么其他原因需要去自定义这两个参数呢?
问题2: 还有我查看了客户端事件查看器并不是每一次到了间隔时间都会记录时间同步,一天之内只有2次或1次甚至没有记录。不知道该事件日志记录的原理是什么,想请高手指点一下,谢谢!
MaxPollInterval
这个值指定了在使用NT5DS同步机制时(简单的说就是按照域的结构和DC做时间同步),最大的时间取样时间间隔,单位为2的次方秒。 域控制器的默认值为为10(1024秒) ,域成员的默认值为15(32768秒),没有加入域的机器的默认值为15(32768秒)。如果当前值为F,即32768秒。
MinPollInterval
这个值指定了在使用NT5DS同步机制时(简单的说就是按照域的结构和DC做时间同步),最小的时间取样时间间隔,单位为2的次方秒。 域控制器的默认值为为6(64秒) ,域成员的默认值为10(1024秒),没有加入域的机器的默认值为10(1024秒)。如果当前值为A,即1024秒。
LargePhaseOffset (HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\LargePhaseOffset):
当时间差小于LargePhaseOffset时,认为是同步的,默认值为5秒。
MaxAllowedPhaseOffset (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxAllowedPhaseOffset):
当时间差大于LargePhaseOffset时,且当时间差超过MaxAllowedPhaseOffset这个值,则W32Time将直接将时间一次性修改正确;
当时间差大于LargePhaseOffset时,且当时间差小于MaxAllowedPhaseOffset这个值,则以渐进式的方式进行时间修改,直到时间正确为止。
总结:如果每次到了时间间隔确实不一定会记录时间同步,到了间隔时间会进行时间取样,如果没有超过阈值,就不需要同步,那么不同步就不会有记录。
不需要同步的情况:因为如果时间差小于LargePhaseOffset时, 认为是同步的,默认值为5秒。
需要同步的情况:
1. 只有每次到了时间间隔,当时间差大于LargePhaseOffset时,且当时间差超过MaxAllowedPhaseOffset这个值,则W32Time将直接将时间一次性修改正确;
REF: https://social.microsoft.com/Forums/ar-SA/17208190-0f56-4dca-85c4-d04fc800ded9/35774326222010222495208692610238388332582116021516274936529235?forum=windowsserversystemzhchs
2. 当时间差大于LargePhaseOffset时,且当时间差小于MaxAllowedPhaseOffset这个值,则以渐进式的方式进行时间修改,直到时间正确为止。
才会记录时间同步。
温馨提示: 我们帖子中提到了在default domain policy对全域设置了时间同步参数,如果用GPO设置域内的时间同步机制,我们建议按照以下方法配置:
创建2个GPO对象,分别PDC的时间同步策略和除了PDC机器的时间同步策略,且分别应用给PDC仿真器和其他域控制器,成员服务器和工作站。
例如:
GPO1(设置了PDC的时间同步策略):应用给PDC仿真器
GPO2(设置了除了PDC机器的时间同步策略):应用给其他域控制器,成员服务器和工作站
具体可以参考以下文章:
Time Synchronization in Active Directory Forests
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)