WSUS 故障排除

WSUS 更新服务 · 第 10 篇 · 适用于 Windows Server 2019 / 2022 / 2025

📑 目录

  1. 同步故障排查
  2. 客户端连接问题
  3. 更新安装失败
  4. 数据库与性能问题
  5. 常见问题

1. 同步故障排查

1

打开WSUS 管理控制台 → 点击"同步"节点 → 查看最近同步结果,检查是否显示"失败"

2

查看同步详细错误:点击失败的同步条目 → 在下方详细信息中查看错误代码和描述

3

检查网络连接:在 WSUS 服务器打开浏览器访问 https://download.microsoft.com,确认可正常访问

4

检查代理设置:在"选项" → "更新源和代理服务器"中确认代理服务器配置正确

5

重试同步:右键服务器名称 → "同步" → 观察同步是否成功

PowerShell - 同步故障诊断
# 查看同步历史
$wsus = Get-WsusServer
$wsus.GetSyncHistory() | Select-Object StartTime, EndTime, Result |
    Format-Table

# 检查 WSUS 服务状态
Get-Service WsusService

# 检查事件日志中的 WSUS 错误
Get-WinEvent -FilterHashtable @{LogName="Application"; ProviderName="Windows Server Update Services"} -MaxEvents 20 |
    Select-Object TimeCreated, LevelDisplayName, Message

2. 客户端连接问题

1

在客户端检查 GPO 是否已应用:运行 gpresult /r → 在"已应用的 GPO"中确认 WSUS-Client-Settings 已列出

2

检查 WSUS 服务器地址:运行 reg query "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate" → 确认 WUServer 值正确

3

检查网络连通性:在客户端运行 Test-NetConnection wsus01.iehang.cn -Port 8530

4

强制客户端报告:运行 wuauclt /detectnow /reportnow → 在 WSUS 控制台查看客户端是否出现

5

检查 Windows Update 日志:运行 Get-WindowsUpdateLog(Win10/11)查看详细错误

PowerShell - 客户端诊断
# 检查 WSUS 客户端注册表配置
Get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate"

# 测试 WSUS 服务器连接
Test-NetConnection wsus01.iehang.cn -Port 8530

# 重置 Windows Update 组件
Stop-Service wuauserv
Stop-Service bits
Remove-Item "C:\Windows\SoftwareDistribution" -Recurse -Force
Start-Service wuauserv
Start-Service bits

# 强制检测
Start-Process wuauclt -ArgumentList "/detectnow /reportnow"

3. 更新安装失败

1

在 WSUS 管理控制台 → "更新" → 筛选"状态=安装失败" → 查看失败的更新列表

2

点击失败的更新 → 在下方"计算机状态"选项卡中查看哪些计算机安装失败及错误代码

3

在客户端查看 Windows Update 错误日志:打开"设置" → "更新和安全" → "查看更新历史记录" → 查看失败更新的错误代码

4

常见错误代码:0x80070002(文件缺失)、0x800F0922(磁盘空间不足)、0x80070005(权限不足)

PowerShell - 安装失败排查
# 查看安装失败的更新
Get-WsusUpdate | Where-Object {$_.Update.GetSummary().FailedCount -gt 0} |
    Select-Object Title, @{N="Failed";E={$_.Update.GetSummary().FailedCount}}

# 查看客户端更新安装日志
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='WindowsUpdateClient'} -MaxEvents 20 |
    Select-Object TimeCreated, LevelDisplayName, Message

# 重新推送失败的更新
Get-WsusUpdate | Where-Object {$_.Update.GetSummary().FailedCount -gt 0} |
    Approve-WsusUpdate -Action Install -TargetGroupName "Test-Computers"

4. 数据库与性能问题

1

检查 SUSDB 数据库大小:打开 SQL Server Management Studio → 连接 WID → 右键 SUSDB → "属性" → 查看"大小"

2

如数据库过大(>10GB),执行服务器清理向导(参见第 7 篇)和索引重建

3

检查 WSUS 服务内存占用:打开任务管理器 → 查看"Windows Internal Database"和"Update Services"进程的内存使用

4

如 WSUS 控制台响应缓慢,检查 IIS 应用池:打开 IIS 管理器 → "应用程序池" → "WsusPool" → 查看内存和 CPU 使用

PowerShell - 性能诊断
# 检查 SUSDB 数据库文件大小
$dbPath = "C:\Windows\WID\Data\SUSDB.mdf"
$logPath = "C:\Windows\WID\Data\SUSDB_log.ldf"
Get-Item $dbPath, $logPath | Select-Object Name, @{N="SizeMB";E={[Math]::Round($_.Length/1MB,1)}}

# 检查 WsusPool 应用池状态
Get-IISAppPool "WsusPool" |
    Select-Object Name, State, @{N="MemoryMB";E={[Math]::Round($_.WorkerProcess.Memory/1MB,1)}}

# 重启 WsusPool 应用池
Restart-WebAppPool "WsusPool"

5. 常见问题

Q1:WSUS 控制台无法连接

检查 IIS 中"WSUS Administration"站点是否运行,WsusPool 应用池是否启动,8530 端口是否开放。

Q2:客户端显示错误 0x8024402F

通常是 WSUS 服务器连接超时。检查网络、防火墙、WSUS 服务状态和 IIS 应用池。

Q3:如何完全重置 WSUS

卸载 WSUS 角色(保留数据库),重新安装后运行配置向导。如需完全重置,删除 SUSDB 和 E:\WSUS 目录后重新安装。