powershell脚本可通过pswindowsupdate模块安全自动管理windows更新,需以管理员权限安装模块、导入后执行get-windowsupdate和install-windowsupdate等命令;手动下载安装kb补丁风险高,须严格匹配系统架构与版本,并验证服务状态和退出码。
powershell 脚本可以自动下载并安装 windows 更新补丁,但需注意:微软官方不支持直接用 powershell 下载任意 kb 补丁文件(如 .msu 或 .cab)并静默安装,除非你明确知道补丁的下载地址、架构匹配(x64/x86)、系统版本兼容性,并手动处理依赖和重启逻辑。更可靠的方式是调用 windows update 服务或使用 pswindowsupdate 模块——它封装了底层 com 接口,能安全检索、下载、安装已批准的更新。
使用 PSWindowsUpdate 模块(推荐)
这是社区广泛验证、接近原生体验的方案,无需手动找补丁链接,自动适配系统环境:
- 以管理员身份打开 PowerShell,运行:
Install-Module PSWindowsUpdate -Force -SkipPublisherCheck - 导入模块:
Import-Module PSWindowsUpdate - 列出可用更新(可选预览):
Get-WindowsUpdate - 下载并安装所有重要/可选更新(静默、自动重启):
Install-WindowsUpdate -AcceptAll -AutoReboot - 若只想装关键更新,加参数:
Install-WindowsUpdate -Category "Critical Updates", "Security Updates" -AcceptAll -AutoReboot
手动下载并安装指定 KB 补丁(需谨慎)
仅适用于你已知 KB 编号(如 KB5034441),且确认其适用于当前系统(如 Windows 10 22H2 x64)。微软补丁通常发布在 Microsoft Update Catalog,但无公开 API,需人工查找下载链接。
- 在 Update Catalog 中搜索 KB 编号,找到对应 .msu 文件,右键复制下载链接(形如
https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2024/01/windows10.0-kb5034441-x64_... .msu) - 用 PowerShell 下载:
$url = "复制的完整链接"; $path = "$env:TEMP\patch.msu"; Invoke-WebRequest -Uri $url -OutFile $path - 静默安装:
wusa.exe $path /quiet /norestart(注意:wusa 不返回标准错误码,建议后续用Get-HotFix | Where-Object HotFixID -eq 'KB5034441'验证) - 安装后若需重启,可加:
Restart-Computer -Force
注意事项与避坑提醒
绕过系统更新机制存在风险,务必留意:
- .msu 文件必须与操作系统位数、版本、语言包严格匹配,否则安装失败且无明确提示
- wusa 安装失败时退出码为 0x5(访问被拒绝)或 0x9(不兼容),但 PowerShell 默认不捕获,需用
$LASTEXITCODE判断 - Windows Update 服务(wuauserv)必须正在运行;若被禁用,脚本前需先启动:
Start-Service wuauserv - 域环境可能受组策略限制,手动安装补丁可能被回滚或禁止
保存为可复用脚本(.ps1)
将上述命令保存为 Update-Now.ps1,首次运行前需解除执行策略限制(仅当前用户):Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。之后双击或右键“以管理员身份运行”即可。











