排查 Windows 更新错误 0x80070490

Windows 更新错误 0x80070490 通常是由于用户或管理员尝试安装更新时的驱动程序故障导致的。 本文档提供了一个全面的指南,用于识别和解决此错误,这些错误可显示在各种症状中,例如挂起的更新、失败的服务堆栈更新和功能更新安装失败。

显示 Windows 更新错误0x80070490的屏幕截图。

先决条件

在继续缓解之前,请确保已备份 OS 磁盘。 如果在 Azure 虚拟机(VM)中使用 Windows,请参阅 从 VM 设置备份 Azure VM ,获取详细说明。

根源

0x80070490错误的主要原因是 Windows 更新安装期间驱动程序失败。 由于以下原因,可能会发生此故障:

  • 等待用于阻止新安装的更新。
  • 与驱动程序相关操作有关的陈旧或不正确的注册表项。
  • SetupConfig.ini 文件损坏 或格式不正确。
  • 系统目录中缺少驱动程序文件或硬链接。

CBS 日志

排查 Windows 更新问题时,CBS 日志有助于识别根本原因。

CBS 日志位于 C:\Windows\Logs\CBS\CBS.log. 日志可以从CBS.log滚动到同一文件夹中的CBSpersisttXXXXXXXXXXXXX.log或 CBSpersisttXXXXXXXXXXXXX.cab。

待处理更新状态

当更新处于“安装挂起”状态时,驱动程序操作可能会失败,因为无法读取驱动程序操作序列 ID 1 的身份标识。 请在 C:\Windows\Logs\CBS\CBS.log 中查看 CBS 日志,寻找类似以下的条目:

Info CBS Failed reading Identity for driver operation sequenceID 1 [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Info CBS Failed loading a driver operation [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Error CBS Doqi: Failed loading driver operations queue. [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Info CBS Failed loading driver operation queue [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Info CBS Failed initializing driver operation queue [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Info CBS Perf: InstallUninstallChain complete.

解决方法:解决待处理的更新

  1. 1从注册表路径中删除文件夹: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\DriverOperations\1

  2. 使用命令将受信任的安装程序设置为自动状态:

    sc config trustedinstaller start=demand
    
  3. 尝试再次安装更新。

症状 2:维护堆栈更新失败

服务堆栈更新(SSU)可能会失败,并出现错误0x80070490。 检查 CBS.log 文件是否有条目,例如:

Error CBS Doqi: Failed loading driver operations queue. [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Info CBS Failed initializing driver operation queue [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Info CBS Perf: InstallUninstallChain complete.
Info CSI 000013c6@2020/2/6:18:53:04.849 CSI Transaction @0x1d2174564c0 destroyed
Info CBS Failed to execute execution chain. [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
Error CBS Failed to process single phase execution. [HRESULT = 0x80070490 - ERROR_NOT_FOUND]

解决方法:重新安装 SSU

  1. 导出并删除 HKLM\SOFTWARE\Microsoft\Windows\Currentversion\Component Based Servcing\Driver Operations\0 处的密钥。
  2. 重新安装 SSU。

症状 3:功能更新安装失败

功能更新可能会失败,错误代码0x80070490。 可以通过 检查更新 并在软件中心(WSUS)中观察此行为。 查看 WindowsUpdate.log 文件以获取条目,例如:

hh:mm:ss.fffff tt 1092 10968 downloadmanager_cpp16907 [DownloadManager] Preparing update for install, updateId = {UpdateID}.202.
hh:mm:ss.fffff tt 11736 12104 uhwinsetup_cpp739 [Handler] * START * Windows Setup Install
hh:mm:ss.fffff tt 11736 12104 uhwinsetup_cpp741 [Handler] Updates to install = 1
hh:mm:ss.fffff tt 11736 12104 uhwinsetuppersisteddata_cpp233 [Handler] Loaded state. m_dwState now: Setup360_CompatToolPhase1(5)
hh:mm:ss.fffff tt 11736 12104 uhwinsetupsession_cpp322 [Handler] Starting Windows Setup with command line = "C:\Windows\SoftwareDistribution\Download\4222e87ece5856088671b07affd003c5\WindowsUpdateBox.exe" /ClassId <ClassID> /ReportId {ReportID}.202 /PreDownload /Update /ClientId <ClientID> /CorrelationVector cFZ4O8G6gEWSekro.2.1.2
hh:mm:ss.fffff tt 11736 12104 uhwinsetupsession_cpp1655 [Handler] Registering WinSetup COM server as CLSID {CLSID} and APPID {APPID}
hh:mm:ss.fffff tt 11736 12104 uhwinsetupsession_cpp1673 [Handler] Successfully registered WinSetup COM server as CLSID {CLSID}
hh:mm:ss.fffff tt 11736 12104 uhwinsetupsession_cpp458 [Handler] Installer completed. Process return code = 0x80070490, result = 0x80070490, callback pending = False
hh:mm:ss.fffff tt 11736 12104 setup360installer_cpp490 [Handler] Handler: Setup360 returned unknown error 80070490 for state 5, resetting state to Unknown
hh:mm:ss.fffff tt 11736 12104 uhwinsetuppersisteddata_cpp155 [Handler] State changed. was: Setup360_CompatToolPhase1(5), now: <invalid>(0)
hh:mm:ss.fffff tt 11736 12104 uhwinsetuppersisteddata_cpp296 [Handler] Saved state. m_dwState: <invalid>(0)
hh:mm:ss.fffff tt 11736 12104 uhwinsetup_cpp776 [Handler] Exit code = 0x80070490

解决方法:修复 SetupConfig.ini

  1. 删除或修复位于 C:\Users\Default\AppData\Local\Microsoft\Windows\WSUS\SetupConfig.ini . 的SetupConfig.ini 文件。
  2. 如果文件为空,请添加一个条目,例如 Show OOBE =None

症状 4:累积更新失败

累积更新可能会失败,错误代码0x80070490以及0x8e5e03fa。 检查安装程序事件日志中是否存在错误,例如:

Information XXXXXXX.corp. 1 Microsoft-Windows-Servicing N/A NT AUTHORITY\SYSTEM Initiating changes for package KB5004122. Current state is Resolved. Target state is Installed. Client id: WindowsUpdateAgent.
Information XXXXX.corp. 3 Microsoft-Windows-Servicing N/A NT AUTHORITY\SYSTEM Package KB5004122 failed to be changed to the Installed state. Status: 0x8e5e03fa.
Information XXXXX.corp. 1 Microsoft-Windows-Servicing N/A NT AUTHORITY\SYSTEM Initiating changes for package KB5004298. Current state is Resolved. Target state is Installed. Client id: WindowsUpdateAgent.
Information XXXXX.corp. 3 Microsoft-Windows-Servicing N/A NT AUTHORITY\SYSTEM Package KB5004298 failed to be changed to the Installed state. Status: 0x8e5e03fa.
Error XXXX.corp. 3 Microsoft-Windows-WUSA N/A CORP\xxa790741it5 Windows update "Security Update for Windows (KB5004298)" could not be installed because of error 2388526074 "" (Command line: ""C:\Windows\system32\wusa.exe" "C:\Users\XXXXX\Desktop\WS2012R2-072021\windows8.1-kb5004298-x64_e98bbac284034aac90559c0d311967d97ebfc0e5.msu" ")

解决方法:修复系统损坏

  1. 启动损坏修复过程:

    DISM /Online /Cleanup-Image /RestoreHealth
    SFC /Scannow
    
  2. 重置 Catroot2 文件夹的内容:

    net stop cryptsvc
    md %systemroot%\system32\catroot2.old
    xcopy %systemroot%\system32\catroot2 %systemroot%\system32\catroot2.old /s
    del %systemroot%\system32\catroot2\* /q
    net start cryptsvc
    
  3. 重命名 软件分发 文件夹:

    net stop wuauserv
    cd %systemroot%
    ren SoftwareDistribution SoftwareDistribution.old
    net start wuauserv
    
  4. 安装补丁。

症状 5:每月汇总更新失败

每月汇总更新可能会失败,并且显示错误代码0x80070490。 检查 CBS 日志中的条目,例如:

Error CBS Shtd: Failed while processing non-critical driver operationsqueue. [HRESULT = 0x80070490 – ERROR_NOT_FOUND]
Info CBS Shtd: Rolling back KTM, because drivers failed.
Info CBS Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Temporary Rollback.

解决方法:解决缺少的驱动程序文件

  1. C:\Windows\System32\DriverStore\FileRepository 内部创建名为 wvms_pp.inf_amd64_81d18de8dedd4cc4 的文件夹。
  2. C:\Windows\WinSxS\amd64_wvms_pp.inf_31bf3856ad364e35_6.2.9200.22376_none_bc457897943a83fe 复制所有 .inf 文件。
  3. 加载驱动程序配置单元并在注册表路径中检查 wvms_pp.inf 驱动程序: HKEY_LOCAL_MACHINE\<Driver Hive>\DriverDatabase\DriverInfFiles\wvms_pp.inf

后续步骤

如果问题仍然存在,请考虑与 WSUS 团队合作以获取进一步帮助。 还可以在 Windows Server 更新故障排除指南中浏览有关 Windows 更新故障排除的其他资源。