dtman 发表于 2026-8-12 09:54:57

重置系统安装日期为当前时间

@echo off
setlocal EnableExtensions EnableDelayedExpansion
chcp 65001 >nul

:: 将系统安装日期/时间重置为当前时刻
:: 对应程序功能:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
::   InstallDate = REG_DWORD(Unix 时间戳,秒)
::   InstallTime = REG_QWORD(Windows FILETIME,UTC)

echo ========================================
echo   修改系统安装日期为今天
echo ========================================
echo.

net session >nul 2>&1
if errorlevel 1 (
    echo [错误] 权限不足,请右键“以管理员身份运行”。
    pause
    exit /b 1
)

set "InstallDate="
set "InstallTime="
for /f "usebackq tokens=1,2 delims=|" %%a in (`powershell -NoProfile -Command "$ft=::UtcNow.ToFileTimeUtc(); $unix=(($ft - 116444736000000000) / 10000000); Write-Output ($unix.ToString() + '|' + $ft.ToString())"`) do (
    set "InstallDate=%%a"
    set "InstallTime=%%b"
)

if not defined InstallDate (
    echo [错误] 无法计算时间戳(PowerShell 可能不可用)。
    pause
    exit /b 1
)
if not defined InstallTime (
    echo [错误] 无法计算 FILETIME。
    pause
    exit /b 1
)

echo 将写入(64 位注册表视图):
echo   InstallDate = !InstallDate!^(REG_DWORD^)
echo   InstallTime = !InstallTime!^(REG_QWORD^)
echo.

set "RegKey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

reg add "%RegKey%" /v InstallDate /t REG_DWORD /d !InstallDate! /f /reg:64 >nul
if errorlevel 1 (
    echo [错误] 写入 InstallDate 失败。
    pause
    exit /b 1
)

reg add "%RegKey%" /v InstallTime /t REG_QWORD /d !InstallTime! /f /reg:64 >nul
if errorlevel 1 (
    echo [错误] 写入 InstallTime 失败。
    pause
    exit /b 1
)

:: 读回校验
set "ReadDate="
set "ReadTime="
for /f "tokens=3" %%v in ('reg query "%RegKey%" /v InstallDate /reg:64 2^>nul ^| findstr /i "InstallDate"') do set "ReadDate=%%v"
for /f "tokens=3" %%v in ('reg query "%RegKey%" /v InstallTime /reg:64 2^>nul ^| findstr /i "InstallTime"') do set "ReadTime=%%v"

:: REG_QWORD 读回多为十六进制,转十进制再比对
set "ReadTimeDec="
if defined ReadTime (
    for /f "usebackq delims=" %%n in (`powershell -NoProfile -Command "try { '!ReadTime!'.Trim() } catch { 0 }"`) do set "ReadTimeDec=%%n"
)

set "ReadDateDec="
if defined ReadDate (
    for /f "usebackq delims=" %%n in (`powershell -NoProfile -Command "try { '!ReadDate!'.Trim() } catch { 0 }"`) do set "ReadDateDec=%%n"
)

if "!ReadDateDec!"=="!InstallDate!" if "!ReadTimeDec!"=="!InstallTime!" (
    echo [成功] 重置成功。
    echo   读回 InstallDate = !ReadDateDec!
    echo   读回 InstallTime = !ReadTimeDec!
    echo.
    pause
    exit /b 0
)

echo [警告] 写入后校验不一致。
echo   期望 InstallDate=!InstallDate!读回=!ReadDate! ^(!ReadDateDec!^)
echo   期望 InstallTime=!InstallTime!读回=!ReadTime! ^(!ReadTimeDec!^)
echo.
pause
exit /b 1


成品批处理:
链接:https://pan.quark.cn/s/b53071e04f8c

it323 发表于 2026-8-12 10:02:53

支持原创!

kedion 发表于 2026-8-12 10:51:00

有些主板的BIOS时间不对,安装系统后不会第一时间同步正确时间,如果直接运行,也是错误的时间,建议联网自动更新时间后再写入
https://wuyou.net/forum.php?mod=viewthread&tid=451443

2012andyle113 发表于 2026-8-12 11:00:59

感谢分享,不知道什么情况需要用这个

topdzw 发表于 2026-8-12 11:17:12

是不是就可以无限试用了{:1_193:}

dtman 发表于 2026-8-12 11:25:41

topdzw 发表于 2026-8-12 11:17
是不是就可以无限试用了

纯娱乐吧,无限试用应该不行,软件会记录安装到电脑的时间节点,一般放在注册表。

ZMLoveLH 发表于 2026-8-12 12:27:53

多谢楼主分享这款脚本

xingchen_123 发表于 2026-8-12 12:36:35

感谢分享

guong 发表于 2026-8-12 12:54:53

来学习下

chenxiz16 发表于 2026-8-12 15:52:23

学习收藏

jjaoxiao31 发表于 2026-8-12 16:02:46

学习收藏

zmin66 发表于 2026-8-12 18:42:34

很少会用得到吧

jiavip 发表于 2026-8-12 20:18:45

For /f "usebackq tokens=1,2 delims=|" %%a in (`powershell -NoProfile -Command "$ft=::UtcNow.ToFileTimeUtc(); $unix=(($ft - 116444736000000000) / 10000000); Write-Output ($unix.ToString() + '|' + $ft.ToString())"`) do ( reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallDate /t REG_DWORD /d "%%a" /f /reg:64 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallTime /t REG_QWORD /d "%%b" /f /reg:64 )

seven0 发表于 2026-8-13 00:07:03

支持一下,谢谢分享。

yyz219195888 发表于 2026-8-13 06:39:21

有一点意思

忆往吾前 发表于 2026-8-13 09:48:34

谢谢分享,也许以后会用得到

关机 发表于 2026-8-14 21:20:36

谢谢分享

ebaqiang 发表于 2026-8-15 07:22:46

精品,不错

cinderella1933 发表于 2026-8-15 16:35:22

可以啊,想什么时候改,就什么时候改了

luocheng017213 发表于 2026-8-25 15:57:42

kedion 发表于 2026-8-12 10:51
有些主板的BIOS时间不对,安装系统后不会第一时间同步正确时间,如果直接运行,也是错误的时间,建议联网自 ...

把bios时间修改好进系统运行脚本可以吧

kedion 发表于 2026-8-25 16:42:09

luocheng017213 发表于 2026-8-25 15:57
把bios时间修改好进系统运行脚本可以吧

BIOS的时钟修改了,那么安装好的系统,获取到的时间就是当时安装的时间,不需要更改,也不需要这个脚本。如果BIOS时钟不正确,并且也没有更改,安装好系统后,获取到的时间就是不正确的,如果没有正常联网校时,那么这个脚本更改的系统安装时间也是错误的

luocheng017213 发表于 2026-8-27 21:30:50

kedion 发表于 2026-8-25 16:42
BIOS的时钟修改了,那么安装好的系统,获取到的时间就是当时安装的时间,不需要更改,也不需要这个脚本。 ...

{:1_191:}{:1_186:}:curse:

挽云揽月 发表于 2026-8-27 21:38:24

这个确实好用,多谢分享

2011chenrongbo 发表于 2026-8-28 08:49:57

感谢分享

MZZM 发表于 2026-8-28 08:57:59

感谢分享

glory01 发表于 2026-8-28 09:11:30

有什么作用呢

dhehrh 发表于 2026-8-29 06:49:23

谢谢分享。

zmin66 发表于 2026-8-31 23:11:16

感谢分享

2011chenrongbo 发表于 2026-9-1 12:30:30

感谢分享

hh0579 发表于 2026-9-2 15:12:45

这个bat实用
页: [1] 2
查看完整版本: 重置系统安装日期为当前时间