适用对象:
重要:远程场景下,务必在最后一次重启之前完成所有准备(RDP 自恢复、BitLocker 保护器、日志路径、计划任务)。重启后短时间内无法交互,准备不充分容易造成“远程失联”。
CMD(推荐): 期望结果: PowerShell(如需):
提示:PowerShell 参数中避免使用含 在提升权限的 PowerShell中执行: 升级完成后重新启用: 管理员 CMD: 观察是否仍在进行: 未指定 A. 只扫不装(可选) B. RDP 计划任务与 BitLocker C. 分阶段部署并稍后手动重启 升级完成后收尾: 远程桌面条件下从 24H2 无人值守升级到 25H2 的关键点:先行兼容性扫描与日志定位、重启前布置 RDP 自恢复、BitLocker 限次停护、用
概述
setup.exe 命令行完成兼容性只扫不装与静默分阶段部署。C:\$WINDOWS.~BT\Sources\Panther 与自定义日志目录跟踪与排错。先决条件
步骤 1:兼容性扫描(只扫不装)
E:\setup.exe /Auto Upgrade /DynamicUpdate Disable ^
/Compat ScanOnly /Quiet /NoReboot ^
/CopyLogs "C:\CompatScanLogs"
echo ExitCode=%ERRORLEVEL%ExitCode=0 且 C:\CompatScanLogs\setuperr.log 无阻断错误。扫描不会重启,仅输出兼容性结果。Start-Process -FilePath "E:\setup.exe" `
-ArgumentList '/Auto Upgrade /DynamicUpdate Disable /Compat ScanOnly /Quiet /NoReboot /CopyLogs "C:\CompatScanLogs"' `
-Wait -PassThru$ 的路径(如 C:\$UpgradeLogs),可能被变量展开。改用 C:\CompatScanLogs / C:\UpgradeLogs 等。
步骤 2:为重启后的 RDP 自恢复创建计划任务
$ErrorActionPreference = "SilentlyContinue"
# 写入开机自执行脚本
$script = @'
$ErrorActionPreference="SilentlyContinue"
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 0 -PropertyType DWord -Force | Out-Null
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Set-Service TermService -StartupType Automatic
Start-Service TermService
Start-Sleep 30
"POST-UPGRADE-OK $(Get-Date -Format s)" | Out-File -Encoding UTF8 C:\post-upgrade-rdp.ok
'@
$path = 'C:\ProgramData\PostUpgradeRDP.ps1'
Set-Content -Path $path -Value $script -Encoding UTF8
# 若任务已存在则先移除
$tn = "PostUpgradeRDP"
$exists = Get-ScheduledTask -TaskName $tn -ErrorAction SilentlyContinue
if ($exists) { Unregister-ScheduledTask -TaskName $tn -Confirm:$false }
# 注册:开机即以 SYSTEM 最高权限运行
$act = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File `"$path`""
$trig = New-ScheduledTaskTrigger -AtStartup
Register-ScheduledTask -TaskName $tn -Action $act -Trigger $trig -RunLevel Highest -User "SYSTEM" | Out-Null步骤 3:BitLocker(如已启用)临时禁用保护器
manage-bde -status C:
manage-bde -protectors -disable C: -RebootCount 2manage-bde -protectors -enable C:步骤 4:静默分阶段部署(不立刻重启)
E:\setup.exe /Auto Upgrade /DynamicUpdate Disable ^
/Quiet /NoReboot ^
/CopyLogs "C:\UpgradeLogs" /EULA accepttasklist | findstr /i "setup.exe setupprep.exe setuphost.exe"/CopyLogs 时,默认日志位置:C:\$WINDOWS.~BT\Sources\Panther\。步骤 5:受控重启并完成升级
shutdown /r /t 5 /c "Windows 11 25H2 in-place upgrade"步骤 6:升级后验证与恢复
winver 显示 Windows 11 25H2(内部版本 26100.x)。C:\post-upgrade-rdp.ok。manage-bde -protectors -enable C:Unregister-ScheduledTask -TaskName "PostUpgradeRDP" -Confirm:$false
Remove-Item C:\ProgramData\PostUpgradeRDP.ps1 -Force故障排除
常见返回码
0:成功(如 ScanOnly 或分阶段完成无阻断)。0xC1900110;若 Panther 日志无阻断且安装流程推进,可视为非致命,以 setupact.log / setuperr.log 为准。日志位置
/CopyLogs "C:\UpgradeLogs"C:\$WINDOWS.~BT\Sources\Panther\附录:一键式示例(管理员 CMD)
E:\setup.exe /Auto Upgrade /DynamicUpdate Disable ^
/Compat ScanOnly /Quiet /NoReboot ^
/CopyLogs "C:\CompatScanLogs"powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$e='SilentlyContinue';$ErrorActionPreference=$e;" ^
"$s=@'
$ErrorActionPreference='SilentlyContinue'
New-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0 -PropertyType DWord -Force|Out-Null
Enable-NetFirewallRule -DisplayGroup 'Remote Desktop'
Set-Service TermService -StartupType Automatic
Start-Service TermService
Start-Sleep 30
'POST-UPGRADE-OK ' + (Get-Date -Format s) | Out-File -Encoding UTF8 C:\post-upgrade-rdp.ok
'@;Set-Content C:\ProgramData\PostUpgradeRDP.ps1 $s -Encoding UTF8;" ^
"$tn='PostUpgradeRDP';$t=Get-ScheduledTask -TaskName $tn -ErrorAction $e; if($t){Unregister-ScheduledTask -TaskName $tn -Confirm:$false};" ^
"$act=New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-NoProfile -ExecutionPolicy Bypass -File ""C:\ProgramData\PostUpgradeRDP.ps1""';" ^
"$tr=New-ScheduledTaskTrigger -AtStartup; Register-ScheduledTask -TaskName $tn -Action $act -Trigger $tr -RunLevel Highest -User 'SYSTEM'|Out-Null
manage-bde -protectors -disable C: -RebootCount 2"E:\setup.exe /Auto Upgrade /DynamicUpdate Disable ^
/Quiet /NoReboot ^
/CopyLogs "C:\UpgradeLogs" /EULA accept
:: 可选:观察进程
tasklist | findstr /i "setup.exe setupprep.exe setuphost.exe"
:: 准备就绪后发起受控重启
shutdown /r /t 5 /c "Windows 11 25H2 in-place upgrade"manage-bde -protectors -enable C:
powershell -NoProfile -ExecutionPolicy Bypass -Command "Unregister-ScheduledTask -TaskName 'PostUpgradeRDP' -Confirm:\$false; Remove-Item C:\ProgramData\PostUpgradeRDP.ps1 -Force"总结
/Quiet /NoReboot 分阶段部署并在确认无误后再受控重启。
必须 注册 为本站用户, 登录 后才可以发表评论!