Windows局域网通过NTP设置时间同步
将Win7做为NTP服务器
修改注册表项
HKEY_LOCAL_MACHINE—>SYSTEM—>CurrentControlSet—>Services—>W32Time—>TimeProviders—>NtpServer
Enabled 设定为 1(默认0)
HKEY_LOCAL_MACHINE—>SYSTEM—>CurrentControlSet—>Services—>W32Time—>Config
AnnounceFlags 设定为 5 (默认 10;16进制的为a)
禁用防火墙或设置例外,UDP 123端口。
运行 services.msc,将Windows Time服务设置成自动(延迟启动) ;Win7下如果设置成自动,下次重启后此服务会被停止,原因不详。 经实验,延迟启动也并不需要用户登录即可启动。
重启动校时服务(在windows的cmd下输入如下指令):
net stop w32time && net start w32time 。
从cmd的返回可知ntp服务器是否打开。
常规配置时间服务器
-
时间服务器 视频监控联网管理系统通常有许许多多的计算机设备组成,各种设备产生的信息需要汇聚比较,如果各种设备的时间不一致会造成信息无法比对等情况。 为解决各设备间时间统一的问题,我们可在网络中设置一台服务器使其作为基准时间,其它设备通过NTP协议与其同步时间。这样很容易做到各设备时间差异小于1s。而作为基准时间的服务器自身时间可通过GPS模块来保证绝对正确。
-
服务端配置 适用于Windows Server 2003以及Windows Sever 2008
-
开放防火墙123 UDP端口;
-
运行中输入“gpedit.msc”;
-
展开“策略”下的“计算机配置”(如果显示)中的“管理模板\系统\Windows 时间服 务\全局配置设置”;将其状态改变为“已启用”;改变AnnounceFlags参数值为5。(默认10,可不配置)
参数含义: a) 0 不作为时间服务器; b) 1 始终为时间服务器; c) 2 自动为时间服务器,意味着由 Windows 时间服务来决定角色; d) 4 始终为可靠时间服务器; e) 8 自动为可靠时间服务器,意味着由 Windows 时间服务来决定角色。
-
展开“策略”下的“计算机配置”(如果显示)中的“管理模板\系统\Windows 时间服 务\时间提供程序\启用Windows NTP服务器”,将其状态改变为“已启用”。(必须配置)
-
在Windows 服务中启动Windows Time服务,并设置启动类型为“自动”;
-
完成。
- 客户端配置 适用于Windows XP、Windows Server 2003、Windows Vista、Windows 7以及Windows Sever 2008。
运行中输入“timedate.cpl”,Internet时间
中更改设置
;与Internet时间服务器同步
打钩,服务器中输入IP地址,点击立即更新,如果正常即更新成功。
若更新不成功可以按照如下设置:
-
运行中输入“gpedit.msc”;
-
展开“策略”下的“计算机配置”(如果显示)中的“管理模板\系统\Windows 时间服务\时间提供程序\启用Windows NTP客户端”, 将其状态改变为“已启用”;
-
展开“策略”下的“计算机配置”(如果显示)中的“管理模板\系统\Windows 时间服务\时间提供程序\配置Windows NTP客户端”, 将其状态改变为“已启用”;改变NtpServer参数中的IP为时间服务器地址,例如:192.168.0.1,0x1;
-
改变Type参数NTP;
-
在Windows 服务中启动Windows Time服务,并设置启动类型为“自动”;
-
完成。
其他时间服务器配置方法
NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。如果局域网计算机(Windows系统)可以连接Internet,可以通过“控制面板”—>”日期和时间”—>”Internet时间”—>”更改设置” 与Internet时间服务器同步。
如果局域网不能连接Internet,那么可以设置一台计算机为NTPServer:
- 启用NTPServer
在Windows下有w32time服务,w32time服务有两种模式:服务器模式、客户端模式,默认只开启客户端模式,用于和其他的时间服务器同步。作为时间服务器,需要开启服务器模式;打开注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer]
默认:"Enabled"=dword:00000000
修改为:"Enabled"=dword:00000001
- 设定强制主机(将其自身设宣布为可靠的时间源)
打开注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config]
默认:"AnnounceFlags"=dword:0000000a
修改为:"AnnounceFlags"=dword:00000005
注:如未设置可能报错:对等机器的层次(stratum)比主机层次少。
- 重启W32Time服务
Run—>cmd
net stop w32time
net start w32time
-
测试服务器防火墙设置,开启防火墙端口 udp,123
-
设置开机启动w32time服务,w32time.bat批处理如下:
::没禁用服务省略
@echo offsc config w32time start= auto
::先关闭间同步
net stop w32time
::启动同步
net start w32time
::始联网同步间(要联网)
w32tm /resync
Server计算机设置完成后,客户端计算机便可以在”Internet时间设置“中键入作为Server的计算机IP,点击立即更新,等待同步成功即可。
或者通过w32time命令设置如下:
w32tm register //服务注册,现在很多系统都是优化的,关闭了该服务
net stop w32time //重启服务
net start w32time
w32tm /resync 192.168.1.25 //与服务器同步,192.168.1.25为上面架设的时间服务器地址
客户机批量设置
将上面命令编辑为批处理,加入开机启动目录,这样开机就自动与服务器同步了。
这样做的缺点:每台机器都要在开机启动中加入批处理,会有一个dos黑框
用VBS实现开机隐藏批处理命令如:
set ws=WScript.CreateObject("WScript.Shell")
ws.Run"C:\1.bat",0 //其中C:\1.bat是你的批处理路径
将文本另存为test.vbs,将之放入开机启动中,不知是否可行,要试验一下!
域控制器时间同步及w32tm用法
现象:域控制器和域内的计算机时间与internet上的时间不同步,老慢几分钟。 解决办法:设置NTP服务器,和外网时间同步。
一、修改DC注册表:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters]
"Type"="NTP"
二、设置权威服务器
- 设置权威服务器 在域控服务器上打开注册表,找到键值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
修改键AnnounceFlags的值为十进制的10。
- 启用 NTPServer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
修改键Enabled的值为十进制的1 。
三、配置组策略,设置时间同步
- 打开“Active Directory 用户和计算机”,在域上点右键,属性。组策略,打开。
- 在“Default Domain Policy”上右键,编辑。
- 计算机配置—管理模板—系统—Windows时间服务,
双击“全局时间配置”,选择“已 启用”。
修改MaxNegPhaseCorrection的值为3600(即为3600秒,1小时)
修改MaxPosPhaseCorrection的值为3600(即为3600秒,1小时)
修改AnnounceFlags的值为5 点“应用”,“确定”。
- 计算机配置—管理模板—系统—Windows时间服务—时间提供程序,
“启用 Windows NTP客户端”,选择“已启用”。
“配置Windows NTP客户端”,选择“已启用”。
修改NtpSever的值为ad-server.rybb.com,0x6 修改Type的值为NTP
修改SpecialPollInterval的值为1800(30分钟)
四、W32TM用法
当修改完策略后使用gpupdate /force 更新策略,使用w32tm命令更新客户端的时钟。
很多时间我们想知道, 当前域内的计算机是从哪个服务器同步的时间,
可以用如下命令:
W32tm /monitor /computers:计算机名称 或者w32tm /monitor /domain:域名
同步某一个机器的时钟:w32tm /resync /computer:172.21.200.100
- 启动“注册表编辑器”。
- 找到并单击下列注册表项,然后添加下列注册表值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32time\Config\
数值名称:MinPollInterval 数值类型:Reg_DWord 数值数据:6
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32time\Config\
数值名称:MaxPollInterval 数值类型:Reg_DWord 数值数据:14
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32time\Parameters\
数值名称:NtpServer 数值类型:Reg_SZ 数值数据:您正在使用的根时间服务器,0x1
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32time\Parameters\
数值名称:Type 数值类型:Reg_SZ 数值数据:NTP
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32ti me\TimeProviders\NtpClient\
数值名称:SpecialPollInterval 数值类型:Reg_DWord 数值数据:300
如果 NtpServer 注册表值的“您正在使用的根时间服务器,0x1”语法是混乱的,请使用林根域根的主域控制器 (PDC) 作为根时间服务。
Microsoft 建议您在所有承载该时间服务的基于 Windows Server 2003 RC1 的服务器上都应用此注册表设置。请注意,使用此配置的计算机将使用未经验证的时间。
- 重新启动时间服务。为此,请在 NT CMD 提示处键入以下命令:
c:>net stop w32time & net start w32time
-
c:>w32tm /resync手动时间同步
-
补充:如果要与外部时间同步,则需做下面的调整:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
“Enabled” 编辑 DWORD 值键入 1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
“Type”编辑数值数据键入 NTP ###外部时间源设置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parametrs\NtpServer
“NtpServer”,“数值数据”键入IP或域名 后面要加 ,0X1 ###轮询间隔
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\
“SpecialPollInterval”“数值数据”键入秒数(数字)建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。 ##配置时间校准设置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
“MaxPosPhaseCorrection” “数值数据”键入 TimeInSeconds
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
- 如果没有为此计算机配置或使用外部时间源,您可以选择禁用 NtpClient。 解决方法: 停掉ntpclient服务
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
Enabled,把值改成0 ,然后再net stop w32time && net start w32time
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。