我最近在 Windows 2008 Std 服务器上安装了 WSUS(v3.2.7600.226),并配置了 4 台测试 PC 通过组策略连接到它。 它们被 WSUS 检测到,并且 PC 正在下载一些来自 WSUS 服务器的更新,但不是全部。
WSUS 控制台所称 PC 缺少的更新已被批准。
如果我运行 wuauclt.exe /detectnow,即使重启后也不会有任何变化。如果我执行以下操作,则不会有任何变化:
- 停止自动更新服务。
- 重命名 C:\Windows\SoftwareDistribution 文件夹。
- 重新启动自动更新服务。
- 进入 Internet Explorer 并删除历史记录、cookie 和临时 Internet 文件。
- 重新启动,然后从命令提示符运行 wuauclt.exe /detectnow。
我还为软件包设置了截止日期,然后在 PC 上运行 wuauclt.exe /detectnow,但之后检查 Windows 更新显示仍然没有可用的更新。
如果我使用 WSUS 策略从计算机组中删除该 PC,然后运行 gpupdate /forcenow,则该 PC 将能够看到来自 Microsoft Internet Updates 的可用更新。
我试过跑步这个脚本强制电脑检索更新,但这也表明没有可用的更新。
更新:在 WSUS 控制台中,如果我右键单击更新并选择“文件信息”,我会看到它存在于 WSUS 数据目录中,文件大小为 2.8 MB。如果我在 WSUS 认为需要此更新的 Win7 PC 上强制进行更新检查,它会检测到没有新更新。该更新已获准用于所有计算机组,包括有问题的 PC 所属的计算机组。
更新:Windows 更新日志(C:\windows\windowsupdate.log)仅显示几个错误:
- 警告:缓存的 cookie 已过期或有新的 PID 可用
- 警告:无法评估已安装的规则,updateId = {189A8F50-0C3A-4FDF-8BC2-BC23A3EB11FB}.101,hr = 80242013
- 检测到 0 个更新
我从 Internet Explorer 中删除了 cookie,并收到类似信息:
- 警告:无法评估已安装的规则,updateId = {189A8F50-0C3A-4FDF-8BC2-BC23A3EB11FB}.101,hr = 80242013
- 检测到 0 个更新
更新:IIS7 日志仅显示“200 正常”。没有 404 等错误,但最后一个日志条目来自上午 8:20 左右,而下午我一直在检查 PC 客户端的更新。对于客户端来说,WSUS 服务器上的时间和时区是正确的。
更新: 0x80242013 显然意味着:WU_E_UH_BADCBSPACKAGEID 更新元数据包含无效的 CBS 包标识符。有一个MS 知识库文章对此。对照列出的可能原因进行检查:
- 文件夹 c:\windows\system32\CatRoot2 不存在
- 仅 catroot 和 CatRoot2_2011915163738 存在。
- 我已安排在下次重启时进行磁盘检查,以防系统文件损坏。
- Windows 和第一级子文件夹未被隐藏。
- 我怀疑这是一个安全或权限问题,因为其他更新在问题机器上安装没有任何问题。
- 我已重命名c:\windows\SoftwareDistribution并且会产生相同的错误目录:\windows\windowsupdate.log(警告:无法评估已安装的规则,updateId = {189A8F50-0C3A-4FDF-8BC2-BC23A3EB11FB}.101,hr = 80242013)
- 我尝试使用 Microsoft Fixit 工具并重新启动,但同样的问题仍然存在。
答案1
进入 WSUS 服务器并在命令提示符下运行 WSUSutil.exe /reset。这将检查数据库中的每个更新元数据行是否在文件系统中存储了相应的更新文件。如果更新文件丢失或已损坏,WSUS 将再次下载更新文件。
答案2
请尝试以下步骤:
@echo on
net stop wuauserv
del /F /Q %windir%\"Windows Update.log"
cd %windir%
ren SoftwareDistribution SoftwareDistribution.old
regsvr32 /s softpub.dll
regsvr32 /s initpki.dll
regsvr32 /s mssip32.dll
regsvr32 /s msxml3.dll
net start wuauserv
wuauclt /resetauthorization /detectnow
PAUSE
notepad "%windir%\WindowsUpdate.log"
PAUSE
答案3
您确定 WSUS 正在正确下载所有更新吗?找到更新并确保它没有挂起下载或报告下载失败。
不久前,我遇到了类似的问题,当时某些更新无法下载,而某些更新可以下载。最终发现是 Fortinet 防火墙的安全策略出了问题。一旦我们将 WSUS 服务器从该策略中排除,一切便会恢复正常。
答案4
您批准更新并不意味着它将自动在客户端 PC 上使用。它需要先下载。所以这可能是您的问题。您批准了更新,并希望您的客户端立即获得它,但事实并非如此。
您需要等待更新在 WSUS 服务器中下载完成。