@echo off
setlocal
title 自动对时脚本 - Windows 7 / 中国标准时间
color 0A
:: ------------------------------------------------
:: 步骤 1: 检查是否以管理员身份运行
:: ------------------------------------------------
echo 正在检查权限...
net session >nul 2>&1
if %errorlevel% neq 0 (
cls
color 0C
echo ========================================================
echo [错误] 权限不足!
echo.
echo 修改系统时间需要管理员权限。
echo 请右键点击本脚本,选择【以管理员身份运行】。
echo ========================================================
pause
exit
)
:: ------------------------------------------------
:: 步骤 2: 用户提示界面
:: ------------------------------------------------
cls
echo ========================================================
echo Windows 7 自动网络对时脚本
echo 目标时区:中国标准时间 (China Standard Time)
echo NTP服务器:ntp.aliyun.com (阿里云)
echo ========================================================
echo.
:: ------------------------------------------------
:: 步骤 3: 设置时区为中国东八区
:: ------------------------------------------------
echo [1/4] 正在校准时区为中国标准时间...
tzutil /s "China Standard Time"
if %errorlevel% equ 0 (
echo - 时区设置完成。
) else (
echo - 时区设置可能有误(或已正确),尝试继续...
)
echo.
:: ------------------------------------------------
:: 步骤 4: 启动/重启时间服务
:: ------------------------------------------------
echo [2/4] 正在检查 Windows Time 服务...
net start w32time >nul 2>&1
echo - 服务已就绪。
echo.
:: ------------------------------------------------
:: 步骤 5: 配置国内高速NTP服务器 (解决Win7自带服务器连不上的问题)
:: ------------------------------------------------
echo [3/4] 正在写入阿里云 NTP 服务器配置...
w32tm /config /manualpeerlist:"ntp.aliyun.com" /syncfromflags:manual /update >nul 2>&1
echo - 配置已更新。
echo.
:: ------------------------------------------------
:: 步骤 6: 执行同步并反馈结果
:: ------------------------------------------------
echo [4/4] 正在向服务器请求同步,请稍候...
w32tm /resync >nul
if %errorlevel% equ 0 (
echo.
echo ========================================================
echo [成功] 时间同步成功!
echo 当前系统时间已更新。
echo ========================================================
) else (
color 0E
echo.
echo ========================================================
echo [失败] 时间同步失败。
echo.
echo 可能的原因:
echo 1. 网络未连接。
echo 2. Windows Time 服务被禁用。
echo 3. 防火墙阻止了 NTP 端口(123)。
echo ========================================================
)
echo.
pause