时间的概念我想应该没有人不知道;时间的一致性无论是对现实的工作生活还是对计算机来说都务必重要;在很多情况下时间不一致会造成很多意外的情况发生。
时间源
对于Windows系统来说;系统本身并不会制造时间;因此,时间数据的来源有:
1.硬件时钟(来自CMOS)
2.网络时钟(来自局域网的时间服务器或者Internet的时间服务器)
CMOS所代表的硬件时间源不是我们讨论的中重点,并且它受制于硬件本身以及他的能源;往往并不是十分可靠。
网络上的时间,如果是局域网的时间服务器,他的时间准确性依赖管理员的管理,相对可靠;Internet上的时间服务器因为面向全体Internet服务,因此可以认为非常可靠。
局域网的时间服务器存在的意义是为那些不能直接访问Internet时间服务器的计算机提供服务器的;一般情况下局域网的时间服务器也会配置为从Internet时间服务器同步时间。(这一点非常像DNS的工作模式)
查询时间源
要查看当前服务器的时间同步源,可以使用以下命令:
w32tm /query /source
执行此命令后,会显示当前服务器正在使用的时间同步源。这可能是一个时间服务器的网络地址,如"time.windows.com"【微软为Windows OS提供的Internet时间服务器】,或者是一个本地硬件时钟源,如"CMOS Clock"【也就是硬件时钟的概念】,或者是局域网内部的某台服务器【如果计算机加入域,了域,那么域服务器会成为默认的时间源】。
时间的同步
默认情况下,时间 的同步是OS会帮我们管理的,一般不需要我们介入。
但有时候意外出现;尤其是在使用虚拟机的场景中,遇到需要手动同步时间的事件会相对多一些。
在Windows Server中,可以使用以下命令来手动要求OS同步一次时间:
PS C:\Users\administrator.TEST> w32tm /resync
Sending resync command to local computer
The command completed successfully.
PS C:\Users\administrator.TEST>
这个命令将会向时间服务器发送同步请求,以更新本地服务器的时间。请注意,执行此命令需要管理员权限。
当然你也可以使用GUI界面在设置中调整OS的时间。
强制时间的同步
有时候手动执行同步并不会成功:
比如,你有可能会收到
很明显,提示本机的时间和要同步的时间源之间时间差距过大,而无法同步成功。
Windows默认情况下,如果本地时间与时间服务器之间的差异超过一定阈值,将不会自动进行时间同步。
这个时候我们就需要通过强制执行同步的方法进行时间的调整,常用的方法是:【当然GUI下调整到一个较小差距的时间也可以】
PS C:\Users\administrator.TEST> net time \\dc01.test.com /set
Current time at \\dc01.test.com is 11/15/2023 10:14:11 AM
The current local clock is 11/15/2023 10:14:11 AM
Do you want to set the local computer's time to match the
time at \\dc01.test.com? (Y/N) [Y]: y
The command completed successfully.
PS C:\Users\administrator.TEST>
当然不加
参数 的时候就仅仅是查询对方的时间。其他用法可以通过help获取帮助信息。以上的操作都需要在管理员权限下执行。