WSUS 补丁管理
场景
内网服务器不能直连微软更新,需要一台 WSUS 统一下发补丁,先测试再全员推。
前置条件
- 一台 Windows Server(磁盘至少 100G,补丁很占空间)
- 能访问微软更新源(或上级 WSUS)
- 客户端能访问 WSUS 的 8530/8531
配置
# 服务端
Install-WindowsFeature -Name UpdateServices, UpdateServices-WidDB, UpdateServices-RSAT `
-IncludeManagementTools
# 初始配置(会同步元数据,比较慢)
& "C:\Program Files\Update Services\Tools\WsusUtil.exe" postinstall CONTENT_DIR=C:\WSUS
# 组策略指向 WSUS(计算机配置 → 管理模板 → Windows 组件 → Windows 更新)
# 指定 Intranet Microsoft 更新服务位置:http://wsus01:8530
命令行设置客户端:
$path = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
New-Item -Path $path -Force | Out-Null
Set-ItemProperty $path -Name WUServer -Value "http://wsus01:8530"
Set-ItemProperty $path -Name WUStatusServer -Value "http://wsus01:8530"
gpupdate /force
验证
# 客户端
gpresult /r | Select-String "WSUS"
wuauclt /detectnow
Get-WindowsUpdateLog -LogPath C:\temp\wu.log
# 服务端
Get-WsusServer
Get-WsusUpdate | Select-Object -First 10
回滚
Remove-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name WUServer
gpupdate /force
坑
- 补丁目录放系统盘,几个月就把 C 盘吃满。
- 客户端不显示「由组织管理」,说明策略没下发成功。
- 只审批不测试,推到生产才发现蓝屏。
- 服务器重启时间不可控,要配合维护窗口。
- WSUS 自身不清理,用
wsusutil.exe或清理向导定期瘦身。 - 客户端长期不连会掉线,超过 30 天不报到的要先清理。