找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 876|回复: 4

[日期时间] 内网时间服务器设置与同步

[复制链接]
发表于 2026-1-22 18:00:27 | 显示全部楼层 |阅读模式
时间服务器,时间准确或可通过北斗校时等
  1. ::内网时间服务器,IP10.123.0.77
  2. @echo off
  3. set "WinTime=HKLM\SYSTEM\CurrentControlSet\Services\W32Time"

  4. ::服务W32Time
  5. ::停止服务net stop w32time
  6. ::清注册表reg delete "%WinTime%" /f
  7. ::卸载服务w32tm /unregister
  8. ::注册服务w32tm /register

  9. ::启动类型自动,延迟启动
  10. reg add "%WinTime%" /v "Start" /t REG_DWORD /d 2 /f
  11. reg add "%WinTime%" /v "DelayedAutostart" /t REG_DWORD /d 1 /f

  12. ::启用NTP服务器,可靠时间源
  13. reg add "%WinTime%\TimeProviders\NtpServer" /v "Enabled" /t REG_DWORD /d 1 /f
  14. reg add "%WinTime%\Config" /v "AnnounceFlags" /t REG_DWORD /d 5 /f

  15. ::重启时间服务以应用更改
  16. net stop w32time && net start w32time
复制代码
客户端,需要校正时间的
  1. ::内网时间客户端
  2. @echo off
  3. set "WinTime=HKLM\SYSTEM\CurrentControlSet\Services\W32Time"

  4. ::服务W32Time
  5. ::停止服务net stop w32time
  6. ::清注册表reg delete "%WinTime%" /f
  7. ::卸载服务w32tm /unregister
  8. ::注册服务w32tm /register

  9. ::启动类型自动,延迟启动
  10. reg add "%WinTime%" /v "Start" /t REG_DWORD /d 2 /f
  11. reg add "%WinTime%" /v "DelayedAutostart" /t REG_DWORD /d 1 /f

  12. ::设置时间源(域名/IP)指向时间服务器
  13. reg add "%WinTime%\Parameters" /v "NtpServer" /t REG_SZ /d "10.123.0.77" /f
  14. ::同步间隔秒数
  15. reg add "%WinTime%\TimeProviders\NtpClient" /v "SpecialPollInterval" /t REG_DWORD /d 7200 /f

  16. ::时间服务器列表
  17. set "tsList=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers"
  18. reg add "%tsList%" /ve /t REG_SZ /d "0" /f
  19. reg add "%tsList%" /v "0" /t REG_SZ /d "10.123.0.77" /f

  20. ::重启时间服务以应用更改
  21. net stop w32time && net start w32time
复制代码
发表于 2026-1-22 18:12:40 | 显示全部楼层
感谢,研究研究。看看好不好实现。
 楼主| 发表于 2026-1-23 09:30:43 | 显示全部楼层
内网时间服务器,可同时上外网,自身校时
  1. ::内网时间服务器,IP10.123.0.77
  2. @echo off
  3. set "WinTime=HKLM\SYSTEM\CurrentControlSet\Services\W32Time"

  4. ::服务W32Time
  5. ::停止服务net stop w32time
  6. ::清注册表reg delete "%WinTime%" /f
  7. ::卸载服务w32tm /unregister
  8. ::注册服务w32tm /register

  9. ::启动类型自动,延迟启动
  10. reg add "%WinTime%" /v "Start" /t REG_DWORD /d 2 /f
  11. reg add "%WinTime%" /v "DelayedAutostart" /t REG_DWORD /d 1 /f

  12. ::启用NTP服务器,作为可靠时间源
  13. reg add "%WinTime%\TimeProviders\NtpServer" /v "Enabled" /t REG_DWORD /d 1 /f
  14. reg add "%WinTime%\Config" /v "AnnounceFlags" /t REG_DWORD /d 5 /f

  15. ::外部时间源(域名/IP)
  16. reg add "%WinTime%\Parameters" /v "NtpServer" /t REG_SZ /d "time.edu.cn" /f
  17. ::同步间隔秒数
  18. reg add "%WinTime%\TimeProviders\NtpClient" /v "SpecialPollInterval" /t REG_DWORD /d 36000 /f

  19. ::外部时间服务器列表
  20. set "tsList=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers"
  21. reg add "%tsList%" /ve /t REG_SZ /d "0" /f
  22. reg add "%tsList%" /v "0" /t REG_SZ /d "time.edu.cn" /f

  23. ::重启时间服务以应用更改
  24. net stop w32time && net start w32time
复制代码
 楼主| 发表于 2026-1-23 09:46:27 | 显示全部楼层
内部服务端,有外网时可开机校对一次时间
  1. @echo off
  2. ::网络通则时间同步,不通则延时再检查。
  3. set "cn=0"
  4. set sync_flag=
  5. set/a ct=%random%%%4+5

  6. ::检测网络通断。成功%errorlevel%=0,失败1
  7. :chk_Net_status
  8. if "%cn%" gtr "%ct%" goto :eof
  9. echo 检查网络
  10. ping -n 1 -w 200 baidu.com&&call :SYNC_TIME||call :delay_qm
  11. if "%sync_flag%"=="1" goto :eof
  12. goto :chk_Net_status

  13. ::延时15秒
  14. :delay_qm
  15. echo 网络不通……
  16. timeout /t 15 /nobreak
  17. set/acn+=1
  18. goto :eof

  19. ::外部时间源(域名/IP)
  20. w32tm /monitor /computers:ntp.aliyun.com
  21. w32tm /config /syncfromflags:manual /manualpeerlist:"time.edu.cn" /update
  22. ::强制同步时间。成功err=0
  23. :SYNC_TIME
  24. echo 网络通
  25. echo 同步时间
  26. w32tm /resync /force
  27. set "sync_flag=1"
  28. goto :eof
复制代码
拖入下面图标加入开机启动
  1. ::拖入添加开机启动.BAT
  2. @echo off
  3. if "%~1"=="" goto :eof

  4. ::检查
  5. set HKLM_Run="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
  6. set HKCU_Run="HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
  7. reg query %HKLM_Run%|find /i "_s$Time$"&&set _run_sTime=1
  8. reg query %HKCU_Run%|find /i "_s$Time$"&&set _run_sTime=1

  9. ::存入目录
  10. set "PF=D:\Program Files"
  11. if not exist "%PF%" md "%PF%"
  12. set "stFile=%PF%\同步时间_服务器.BAT"
  13. if not exist "%PF%" md "%PF%"
  14. if not exist "%stFile%" copy/b/y "%~1" "%stFile%"

  15. ::添加注册表启动项
  16. if not "%_run_sTime%"=="1" (%_没有注册表启动项时才添加_%
  17.         reg add %HKCU_Run% /v _s$Time$ /d "%stFile%" /f
  18. )
  19. ::删除reg delete %HKCU_Run% /v _s$Time$ /f
复制代码
 楼主| 发表于 2026-1-23 09:49:09 | 显示全部楼层
客户端开机校对一次时间

  1. @echo off
  2. ::网络通则时间同步,不通则延时再检查。
  3. set "cn=0"
  4. set sync_flag=
  5. set/a ct=%random%%%4+5

  6. ::检测网络通断。成功%errorlevel%=0,失败1
  7. :chk_Net_status
  8. if "%cn%" gtr "%ct%" goto :eof
  9. echo 检查网络
  10. ::校时服务器10.123.0.77
  11. ping -n 1 -w 200 10.123.0.77&&call :SYNC_TIME||call :delay_qm
  12. if "%sync_flag%"=="1" goto :eof
  13. goto :chk_Net_status

  14. ::延时15秒
  15. :delay_qm
  16. echo 网络不通……
  17. timeout /t 15 /nobreak
  18. set/acn+=1
  19. goto :eof

  20. ::内部时间源(域名/IP)
  21. w32tm /config /syncfromflags:manual /manualpeerlist:"10.123.0.77" /update
  22. ::强制同步时间。成功err=0
  23. :SYNC_TIME
  24. echo 网络通
  25. echo 同步时间
  26. w32tm /resync /force
  27. set "sync_flag=1"
  28. goto :eof
复制代码
拖放加入开机启动
  1. ::拖入添加开机启动.BAT
  2. @echo off
  3. if "%~1"=="" goto :eof

  4. ::检查
  5. set HKLM_Run="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
  6. set HKCU_Run="HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
  7. reg query %HKLM_Run%|find /i "_c$Time$"&&set _run_cTime=1
  8. reg query %HKCU_Run%|find /i "_c$Time$"&&set _run_cTime=1

  9. ::存入目录
  10. set "PF=D:\Program Files"
  11. if not exist "%PF%" md "%PF%"
  12. set "ctFile=%PF%\同步时间_客户端.BAT"
  13. if not exist "%PF%" md "%PF%"
  14. if not exist "%ctFile%" copy/b/y "%~1" "%ctFile%"

  15. ::添加注册表启动项
  16. if not "%_run_cTime%"=="1" (%_没有注册表启动项时才添加_%
  17.         reg add %HKCU_Run% /v _c$Time$ /d "%ctFile%" /f
  18. )
  19. ::删除reg delete %HKCU_Run% /v _c$Time$ /f
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:06 , Processed in 0.017157 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表