You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 11非域环境下如何通过批处理切换本地日期与时间服务器同步状态?

Windows 11非域环境下如何通过批处理切换本地日期与时间服务器同步状态?

嘿,我来帮你搞定这个需求!你想要的快速切换功能完全可以实现,咱们一步步拆解:

一、先解决Win11中w32tm报错的问题

你碰到的"The service has not been started"错误,根源是Windows Time服务默认可能未启动。要和时间服务器同步,得先把这个服务拉起来,之后再执行同步命令:

  • 启动服务命令:net start w32time
  • 执行同步命令:w32tm /resync
    如果之后想关闭服务(避免自动同步干扰你设置本地日期),可以用:net stop w32time

二、编写批处理实现一键切换

你可以拆分写两个独立批处理,或者写一个带参数的灵活版本,按需选择:

1. 切换到指定日期的批处理(比如命名为set-custom-date.bat

@echo off
rem 先关闭时间服务,防止自动同步覆盖设置
net stop w32time >nul 2>&1
rem 跳过交互直接设置指定日期(这里以04/14/2020为例)
echo 04/14/2020 | date
echo 已切换到指定日期:04/14/2020
pause

2. 切换到时间服务器同步的批处理(比如命名为sync-to-timeserver.bat

@echo off
rem 启动Windows Time服务
net start w32time >nul 2>&1
rem 等待服务启动完成,避免同步命令报错
timeout /t 2 /nobreak >nul
rem 执行时间同步
w32tm /resync
echo 已完成与时间服务器的同步
pause

更灵活的带参数批处理(比如toggle-date-mode.bat

一个文件搞定两种模式,通过命令参数切换:

@echo off
if "%1" == "custom" (
    net stop w32time >nul 2>&1
    echo 04/14/2020 | date
    echo 已切换到指定日期:04/14/2020
) else if "%1" == "sync" (
    net start w32time >nul 2>&1
    timeout /t 2 /nobreak >nul
    w32tm /resync
    echo 已完成与时间服务器的同步
) else (
    echo 使用方式:
    echo 切换到指定日期:toggle-date-mode.bat custom
    echo 同步时间服务器:toggle-date-mode.bat sync
)
pause

使用时只需在命令行输入toggle-date-mode.bat customtoggle-date-mode.bat sync就行~

注意事项

  • 这些批处理需要以管理员身份运行,不然会没有权限启动/停止服务或修改日期哦。

备注:内容来源于stack exchange,提问作者gatorback

火山引擎 最新活动