# ========================================================= # MAX Windows Toolkit - 管理 Windows 更新 # ========================================================= $Common = "C:\Setup\windows\lib\common.ps1" if (Test-Path $Common) { . $Common } Show-AdminWarn Write-Header "管理 Windows 更新" Write-Info "1. 查看 Windows 更新服务状态" Write-Info "2. 重置 Windows 更新组件" Write-Info "3. 暂停 Windows 更新 7 天" Write-Info "4. 恢复 Windows 更新" Write-Line $Choice = Read-Host " 请选择" switch ($Choice) { "1" { Write-Section "更新服务状态" Get-Service wuauserv,bits,cryptsvc,msiserver -ErrorAction SilentlyContinue | Format-Table Name, Status, StartType -AutoSize } "2" { try { Write-Info "正在停止更新服务..." Stop-Service wuauserv,bits,cryptsvc,msiserver -Force -ErrorAction SilentlyContinue Rename-Item "C:\Windows\SoftwareDistribution" "SoftwareDistribution.old" -ErrorAction SilentlyContinue Rename-Item "C:\Windows\System32\catroot2" "catroot2.old" -ErrorAction SilentlyContinue Write-Info "正在重启更新服务..." Start-Service msiserver -ErrorAction SilentlyContinue Start-Service cryptsvc -ErrorAction SilentlyContinue Start-Service bits -ErrorAction SilentlyContinue Start-Service wuauserv -ErrorAction SilentlyContinue Write-OK "Windows 更新组件已重置" } catch { Write-Err "重置更新组件失败" Write-Muted $_.Exception.Message } } "3" { try { $PauseEnd = (Get-Date).AddDays(7).ToString("yyyy-MM-ddTHH:mm:ssZ") New-Item -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Force | Out-Null Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" ` -Name "PauseUpdatesExpiryTime" -Type String -Value $PauseEnd Write-OK "Windows 更新已暂停 7 天" } catch { Write-Err "暂停更新失败" Write-Muted $_.Exception.Message } } "4" { try { Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" ` -Name "PauseUpdatesExpiryTime" -ErrorAction SilentlyContinue Write-OK "Windows 更新已恢复" } catch { Write-Err "恢复更新失败" Write-Muted $_.Exception.Message } } default { Write-Err "无效选项" } } Write-Line Write-OK "Windows 更新管理完成" Pause-Max