Oamc

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 天不报到的要先清理。