Wsus更新失败错误代码:0x80244022故障排除
1. 故障
1.1 环境说明
内网搭建了一台windows 2016服务器作为wsus服务器,提供给内网windows服务器进行补丁更新,涉及到操作系统有win2008,win2012,win2016,win2019.
1.2 故障现象
最近陆续有应用反应更新报错,错误码0x80244022
2. 故障分析
更新失败原因无法三个.
1.连接错误
2.客户端错误
3.服务器错误
2.1 连接错误排除
客户端与wsus连接失败,多数原因是设置了代理造成.取消代理即可排除.
2.2 客户端错误
客户端错误经常是由于长时间补丁没有更新,原先的一些补丁和后续补丁依赖出现问题,或之前更新被非正常退出或中断造成的.方法也比较简单,清理掉补丁更新记录即可.
在command窗口运行以下命令:(server版直接command窗口运行即可,win10,win7之类的以管理员身份运行)
net stop wuauserv
del C:\Windows\SoftwareDistribution\* /q
net start wuauserv
dism /Online /Cleanup-Image /RestoreHealth
sfc /scannow
运行dism /Online /Cleanup-Image /RestoreHealth和sfc /scannow时会比较耗时,一定耐心等待.
2.3 服务端错误
本次故障其实是服务器故障造成的,现象是wusu服务器IIS中的Pool回收失败造成的.
现象是wsus"更新服务"打开后显示wsus已崩溃,点击重新加载(忘记截图了)
但重启服务器后,更新服务又能打开,客户端立马点更新又能更新,但过不多久又崩溃了,随之的更新都失败了.
其实到这里故障点已经排查出来了,接下来无非是怎么解决了.
应用日志报错如下:
2.3.1 故障排除
此时发现Wsus服务器的IIS的应用程序池中的wsuspool处于停止状态.启动后就可以更新,但没多久就又停止了.
点击回收后故障排除
2.3.2 后续操作
扩充内存至16G,并修改IIS中Wsus回收机制,改为固定4小时回收.
3. 总结
由于windows服务器和周边使用windows设备大量增加,由原来的120台左右到现在400+台.wsus服务器的2C,8G内存已经无法支撑为那么多设备提供服务.现在临时加到了4C,16G应该也能暂时顶一段时间.
后续可以采取的操作:
- 增加二级wsus代理服务器.
- 统计windows版本后将部分版本分离出去,来减轻单台wsus压力.
- 用LVS对多台wsus的8530做TCP转发.
1和2实现比较简单,3需要考虑健康检查.