Windows 7 开机自动同步网络时间

1.应用背景

有时,我们会遇到这样的情况:

电脑主板上电池没电了,它会导致时间丢失,可我们又没时间或懒得换电池。

于是乎,为了方便同步时间,可以写一个脚本,并将它放在启动项里。

这样,就能实现开机自动同步时间。

2.注意事项

为了防止时间跳变大引起系统异常,Windows 时间同步有一个“15小时”的界限,即:时间差太大是无法自动更新时间的。因此,我们需要修改注册表里面的其中两个值。

它们分别是:

内容 修改对象 修改值为
1 MaxPosPhaseCorrection 0xFFFFFFFF
2 MaxNegPhaseCorrection 0xFFFFFFFF

MaxPosPhaseCorrection:该项指定服务可进行的最大正时间校准量(以秒为单位)

MaxNegPhaseCorrection:该项指定服务可进行的最大负时间校准量(以秒为单位)

3.Bat 脚本

1.由于开机的时候,可能需要一些时间去配置网络等,所以下面脚本添加了一点时间延迟。如不需要,将 ping 那一行去除即可。

2.创建一个 txt 文本文件,复制下面内容到该文本文件中,然后将文件命名为synctime.bat

3.将 synctime.bat 文件移动至启动文件夹下

Windows 7 启动文件夹路径:(其中的“admin”是你的用户名)

C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

@echo off
echo Running...
ping -n -15 127.0.0.1>nul
w32tm /unregister
net stop w32time
w32tm /register
net start w32time
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 999999999 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 999999999 /f
net stop w32time
net start w32time
w32tm /resync
w32tm /resync

4.注意事项

如果脚本无效,可能是因为启动时,没有给该脚本“管理员权限”

解决方法:

1.给 bat 文件创建一个“快捷方式”。

2.用鼠标右键单击该“快捷方式”,然后选择“属性”。

3.打开“属性”中的“快捷方式”选项卡,点击“高级”,在新窗口中勾选“用管理员身份运行”,点击“确定”。

4.将这个“快捷方式”添加到启动文件夹,即可自动以管理员身份运行它。

你可能感兴趣的:(windows)