几天前,闲着无事,到总集成的屋去聊天,其中的一个人就问我,会不会设置时间同步服务,并说:“将各个公司的项目集成在一起,彼此服务器的系统时间可能会不一样,这样会有点问题,比如,记录日志,系统登录……”。我说:“是不太好……没设时间同步……”。他说搞了半天没成,说要不自己写一个得了。我一听就说,写一个倒不难,但是有现成的,干嘛自己写啊,把现在的项目搞得这么麻烦。于是就和他查了资料,研究了一下,其实方法很简单。
因此,有时候,在局域网环境中设置时间同步服务器,统一客户端和服务器端的系统时间是很有必要的。本文在Windows2003 Server上实现客户端和服务器进行时间同步。
服务器端提供时间同步的服务,也就是一个专门负责时间同步的一个系统服务,或者说系统进程,在客户端也有一个这样的进程,与服务端的时间服务进行通信,协商时间。步骤如下:
服务器端设置
默认情况下,服务器 Windows 2003 Server 是作为时间同步客户端的。你可以双击系统时间,在 "Internet时间" 属性页里有时间同步的设置,显然系统默认是作为客户端的。所以,必须通过修改设置,使系统作为时间同步的服务端。
1, 修改注册表以下项的键值
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/TimeProviders/NtpServer 内的 "Enabled" 设置为 "1",打开时间同步服务功能。
2, 修改以下键值
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/Config 里的 "AnnounceFlags" 设置为 "5",表示强制主机将它自身宣布为可靠的时间源,从而使用CMOS时钟。如果设置为“a”,则表示为采用外面的时间服务器。
3, 重启 Win32Time 服务
执行如下命令:
以下是代码片段:
net stop w32time && net start w32time
其中,"&&" 符号表示同时执行两条命令。
客户端设置
1,客户端的设定更改注册表即可。
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/TimeProviders/NtpClient 里的 "SpecialPollInterval" 时间间隔(单位为秒,43200为12小时);"SpecialPollTimeRemaining" 时间同步的服务器,格式为:"IP address,0",例如:192.168.1.1,0。