[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]局域网环境下,批处理如何实现多台机子与指定主机/服务器同步日期时间?

本帖最后由 ygqiang 于 2016-6-6 22:16 编辑

[已解决]局域网环境,批处理如何实现多台机子与指定主机/服务器同步日期时间?

局域网,xp系统,不能上外网。bat如何实现:日期/时间自动校正到一样?

最好能拿出1台xp主机,作为服务器一直通电开机。
其他xp主机,每次开机进入xp系统,通过局域网,后台自动定期间隔30秒,自动校正日期/时间。(如果ping不通服务器,就不校正)

最好能有绿色/免安装版本、xp下可以使用的、后台自动启动、后台自动校正时间的软件(客户端/服务器端)。


1、服务器端,xp启动以后,自动运行某个绿色/免安装/后台运行的时间服务器软件。(最好是bat或者vbs代码)
2、客户端,xp启动以后,自动运行1次时间同步客户端软件。(最好也是bat或者vbs代码)
(绿色/免安装/后台运行,与局域网内的服务器ip比如10.10.127.66自动校正1次时间)
2

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
    • pcl_test: 未按版规发帖PB -30

客户端运行代码。
  1. @echo off&setlocal enabledelayedexpansion
  2. if "%1" == "h" goto begin
  3. mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
  4. :begin
  5. rem 下边开始写批处代码了
  6. echo 时间同步-局域网
  7. set server1=192.168.8.31
  8. set server2=192.168.8.33
  9. set server3=10.16.80.180
  10. for /l %%m in (1,1,80) do (
  11. ping !server1! -n 1 >nul 2>nul && net time \\!server1! /set /y && exit
  12. ping !server2! -n 1 >nul 2>nul && net time \\!server2! /set /y && exit
  13. 1netTimeSet !server1! -x
  14. ping 127.0.0.1 -n 30 >nul 2>nul
  15. )
  16. exit
  17. net time \\%server1% /set /y
  18. pause
  19. exit
  20. 1netTimeSet %server1% -x
  21. netTimeSet %server1%
  22. exit
复制代码

TOP

本帖最后由 ygqiang 于 2016-6-4 18:46 编辑

初步解决。。。

服务器端运行代码。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ;Automatic Updates
  4. sc config wuauserv start= disabled
  5. net stop wuauserv
  6. ;Computer Browser
  7. sc config Browser start= auto
  8. net start Browser
  9. ;Print Spooler
  10. sc config Spooler start= auto
  11. net start Spooler
  12. ;Server
  13. sc config LanmanServer start= auto
  14. net start LanmanServer
  15. ;ShellHWDetection
  16. sc config ShellHWDetection start= disabled
  17. net stop ShellHWDetection
  18. ;Terminal Services
  19. sc config TermService start= auto
  20. net start TermService
  21. ;Windows Image Acquisition
  22. sc config stisvc start= disabled
  23. net stop stisvc
  24. ;Windows Time
  25. sc config W32Time start= auto
  26. net start W32Time
  27. ;Workstation
  28. sc config Lanmanworkstation start= auto
  29. net start Lanmanworkstation
  30. sc config schedule start= demand
  31. net start schedule
  32. regedit /s ser-gx.reg
  33. net stop w32time && net start w32time
  34. echo setup w32time auto startup
  35. REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time /v Start /t REG_DWORD /d 2 /f
  36. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer /v Enabled /t REG_DWORD /d 1 /f
  37. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 5 /f
  38. net user Guest /active:yes
  39. net config server /hidden:no
  40. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t reg_dword /d 0  /f
  41. rem 取消“使用简单文件共享”方式
  42. 1pause
  43. exit
复制代码
其中的ser-gx.reg文件,内容如下:
  1. Windows Registry Editor Version 5.00
  2. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa]
  3. "restrictanonymous"=dword:00000000
  4. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
  5. "restrictanonymous"=dword:00000000
  6. ; 以上两行在系统中的位置是:本地安全策略-安全选项-网络访问:不允许SAM帐户和共享
  7. ; 的匿名枚举。系统默认值是:已停用。
  8. ; 解说:操作系统默认:利用ipc$通道可以建立空连接,匿名枚举出该机有多少帐户。显然
  9. ; 有一定的安全隐患。本系统已设为不允许空连接了。以此提高单机拨号上网的安全性。
  10. ; 负面影响是局域网不能互访了。要更改一下才可以解决。
  11. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
  12. "limitblankpassworduse"=dword:00000000
  13. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa]
  14. "limitblankpassworduse"=dword:00000000
  15. ; 以上两行在系统中的位置是:本地安全策略--安全选项--帐户:使用空白密码的本地帐户
  16. ; 只允许进行控制台登录。系统默认值是:已启用。
  17. ; 解说:很多人的帐户是不加密码的。这样,当局域网中别的电脑访问本机时,会弹出错误提示:
  18. ; 登录失败:用户帐户限制………。这是XP系统的一条安全策略造成的,防止别人趁你空密码时
  19. ; 进入你的电脑。如果你觉得无所谓,不必做这些限制,那就把它设为:已停用。
  20. [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count]
  21. "HRZR_EHAPCY"=hex:0C,00,00,00,26,00,00,00,F0,FB,E5,52,64,95,C6,01
  22. "HRZR_EHAPCY:"P:\JVAQBJF\flfgrz32\sverjnyy.pcy",Jvaqbjf 防火墙"=hex:0C,00,00,00,08,00,00,00,F0,FB,E5,52,64,95,C6,01
  23. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
  24. "445:TCP"="445:TCP:LocalSubNet:Enabled:@xpsp2res.dll,-22005"
  25. "137:UDP"="137:UDP:LocalSubNet:Enabled:@xpsp2res.dll,-22001"
  26. "138:UDP"="138:UDP:LocalSubNet:Enabled:@xpsp2res.dll,-22002"
  27. "139:TCP"="139:TCP:LocalSubNet:Enabled:@xpsp2res.dll,-22004"
  28. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Epoch]
  29. "Epoch"=dword:000001ED
  30. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Providers]
  31. "LogonTime"=hex:E8,31,8E,4F,64,95,C6,01
  32. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
  33. "445:TCP"="445:TCP:LocalSubNet:Enabled:@xpsp2res.dll,-22005"
  34. "137:UDP"="137:UDP:LocalSubNet:Enabled:@xpsp2res.dll,-22001"
  35. "138:UDP"="138:UDP:LocalSubNet:Enabled:@xpsp2res.dll,-22002"
  36. "139:TCP"="139:TCP:LocalSubNet:Enabled:@xpsp2res.dll,-22004"
  37. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Epoch]
  38. "Epoch"=dword:000001ED
  39. ; 以上数值对应系统中的位置:控制面板--防火墙--例外--文件和打印机共享。系统默认:不选。
  40. ; 解说:所有的策略都设置好了,局域网依然不能访问,提示:您没有权限使用网络资源,找
  41. ; 不到网络路径!呵呵,真是令人火冒三丈!其实XP还有一道关卡,就是防火墙,必须要经过
  42. ; 防火墙的允许才行。
  43. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
  44. "forceguest"=dword:00000001
  45. ; 以上数值对应系统中的位置是:控制面板--管理工具--本地安全策略--本地策略--安全选项,
  46. ; 网络访问:本地帐户的共享和安全模式:仅来宾-本地用户以来宾份验证。这时,当局域网
  47. ; 其他机访问本机时,不会弹出对话框,就可以直接进入。在家庭网等完全可以信任的区域,
  48. ; 建议使用这种方式。
  49. ;开通局域网共享(访问本机无需验证即可进入)
  50. ;《GhostXP_SP2电脑公司特别版》作者编写。感谢您的使用。
  51. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
  52. "autodisconnect"=dword:0000000f
  53. "enableforcedlogoff"=dword:00000001
  54. "AdjustedNullSessionPipes"=dword:00000001
  55. "AutoShareServer"=dword:00000001
  56. "AutoSharewks"=dword:00000001
复制代码

TOP

百度个ntp服务端就好了  没什么可说的

TOP

需要测试。
  1. @echo off
  2. echo 客户端,运行
  3. ;Windows Time
  4. sc config w32time start= auto
  5. net start w32time
  6. reg add HKLM\SYSTEM\ControlSet001\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 30 /f
  7. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 30 /f
  8. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time /v Start /t REG_DWORD /d 2 /f
  9. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollTimeRemaining /t REG_MULTI_SZ /d 192.168.8.33,0 /f
  10. net stop w32time && net start w32time
  11. set TimeServer=192.168.8.33
  12. net time /setsntp:%TimeServer%
  13. w32tm /resync %TimeServer%
  14. exit
复制代码

TOP

需要测试。
  1. @echo off
  2. echo 服务器端,运行。
  3. ;Windows Time
  4. sc config w32time start= auto
  5. net start w32time
  6. cls
  7. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer /v Enabled /t REG_DWORD /d 1 /f
  8. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 5 /f
  9. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time /v Start /t REG_DWORD /d 2 /f
  10. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters  /v Type /t REG_SZ /d NTP /f
  11. cls
  12. echo 修改Windows防火墙设置,允许123端口的UDP连接。开启NTP端口  NTP默认使用的端口号是UDP123
  13. cls
  14. ipseccmd -w REG -p "Nable ports" -r "Nable UDP/123" -f *+0:123:UDP -n PASS -x
  15. ping 127.0.0.1 -n 5 >nul 2>nul
  16. echo 端口是某个程序或者某个服务开的,可以关掉对应的程序或者服务,这样就可以关掉相应的端口
  17. cls
  18. net stop w32time && net start w32time
  19. cls
  20. echo.
  21. netstat -an |find /i "LISTENING"
  22. echo.&echo   请按任意键退出...
  23. 1pause>nul
  24. cls
  25. netstat -an
  26. netstat -a -n
  27. ping 127.0.0.1 -n 6 >nul 2>nul
  28. exit
复制代码

TOP

@echo off

title 获取网络时间,同步到本机(需联网)

cd /d "%tmp%"

(

echo With CreateObject^ ...
lion991128 发表于 2015-3-17 14:33




局域网,xp系统主机20套,都不能连上外网啊。

TOP

@echo off

title 获取网络时间,同步到本机(需联网)

cd /d "%tmp%"

(

echo With CreateObject^("Microsoft.XMLHTTP"^)

echo .open "get", "http://open.baidu.com/special/time/", False

echo .send

echo WScript.echo DateAdd^("s",CLng^(Left^(Split^(Split^(.responseText,"baidu_time("^)^(1^),")"^)^(0^),10^)^),"1970-1-1 8:00"^)

echo End With

)>gettime.vbs

for /f "tokens=1*" %%i in ('cscript //nologo gettime.vbs') do date %%i & time %%j

echo 本机系统时间同步完成!

TOP

回复 9# yu2n


    这个私活至少5000

TOP

核心就是 Net Time,但是楼主系统基础知识不过关……又不愿意自己尝试,3 个月过去了,刚出生的女娃娃都能学会走几步路了。

这类似系统集成方案了,分服务器与客户机。

这不是几行代码能搞定的,通信、账户权限、系统服务都要涉及……还要考虑异常,考虑给用户的提示。
光测试这个方案的时间就要不少……

你是要直接的解决方案+软件,而不是学习几段核心代码,对吧?给论坛捐钱500,我考虑帮你做个解决方案。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

本帖最后由 ygqiang 于 2015-1-21 18:55 编辑

最终还是没解决。

TOP

回复 5# ygqiang


    如果你测试发现不能用,那就直接告诉他们不能用。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

做一个 ntp 服务器呗
菩提本无树,明镜亦非台。
本是无一物,何处惹尘埃。

TOP

回复  ygqiang


    w32tm 有 [/syncfromflags:] 选项,不能直接使用的吗?
CrLf 发表于 2014-10-11 01:30



w32tm这个命令,在xp系统下可以正常使用吗?

TOP

回复 3# ygqiang


    w32tm 有 [/syncfromflags:<source>] 选项,不能直接使用的吗?

TOP

返回列表