powershell 是管理 wsus 安全更新审批最高效的方式,核心是用 get-wsusupdate 筛选、approve-wsusupdate 批准,支持按分类、kb 编号、产品精准操作,并可结合任务计划自动执行,但需配合测试组验证、排除驱动/功能更新及数据库维护等安全措施。
powershell 是管理 wsus 安全更新审批最高效的方式,尤其适合批量、定时、条件化操作。核心是使用 get-wsusupdate 筛选待审批更新,再用 approve-wsusupdate 执行审批,整个流程可完全脚本化。
筛选并审批指定分类的安全更新
大多数企业只希望自动批准“安全更新”和“关键更新”,避免误批驱动或功能更新。以下命令可一次性完成筛选与审批:
- 连接到本地 WSUS 服务器:
Get-WsusServer -Name "WSUSServer01" -PortNumber 8530 -UseSsl - 获取所有已同步但未审批的“安全更新”和“关键更新”:
Get-WsusUpdate -Approval Unapproved -Classification "Security Updates", "Critical Updates" - 对结果批量审批到“Production”目标组:
| Approve-WsusUpdate -Action Install -TargetGroupName "Production"
组合成一行即可运行:Get-WsusServer -Name "WSUSServer01" | Get-WsusUpdate -Approval Unapproved -Classification "Security Updates","Critical Updates" | Approve-WsusUpdate -Action Install -TargetGroupName "Production"
按 KB 编号或产品精准审批
某些场景下需更精细控制,例如仅批准影响 Windows Server 2022 的 KB5039302 补丁:
- 使用
-UpdateId或-KbArticleId精确匹配:Get-WsusUpdate -KbArticleId "KB5039302" - 结合
-Product过滤操作系统范围:-Product "Windows Server 2022" - 审批前建议先用
-WhatIf参数预览效果,避免误操作
示例:Get-WsusUpdate -KbArticleId "KB5039302" -Product "Windows Server 2022" -Approval Unapproved | Approve-WsusUpdate -Action Install -TargetGroupName "Servers-2022" -WhatIf
定期自动化执行(任务计划 + 脚本)
将审批逻辑保存为 .ps1 文件后,可通过 Windows 任务计划程序定时运行:
- 脚本开头务必添加
Import-Module UpdateServices加载 WSUS 模块 - 使用
Start-Transcript记录每次审批日志,便于审计追踪 - 在任务计划中以“最高权限”运行,并指定 PowerShell 执行策略为
Bypass或RemoteSigned - 推荐每周三凌晨 2 点执行,避开业务高峰且紧贴微软 Patch Tuesday 发布节奏
注意事项与安全建议
自动化审批不是“放任不管”,必须配套管控措施:
- 审批脚本应始终作用于测试组(如 “Test-Servers”),确认无问题后再手动推广至生产组
- 避免审批“驱动程序更新”和“功能更新”,这两类更新默认不包含在
Security Updates分类中,但需额外排除 - 若启用了 TLS/SSL,确保脚本中
Get-WsusServer使用-UseSsl参数,否则连接失败 - WSUS 数据库需定期维护(如索引重建、清理拒绝/过期更新),否则
Get-WsusUpdate查询会显著变慢











