@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=[DateTime]::UtcNow.ToFileTimeUtc(); $unix=[uint32](($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 { [uint64]'!ReadTime!'.Trim() } catch { 0 }"`) do set "ReadT…