本文可帮助解决安装Windows更新时发生的0x800F0922(CBS_E_INSTALLERS_FAILED)错误。
安装Windows更新时,会收到0x800F0922(CBS_E_INSTALLERS_FAILED)错误。
在 CBS.log 文件中,会看到以下条目:
Info, CSI 00000c61 Begin executing advanced installer phase 38 index 2480 (sequence 2519)
Old component: [l:0]''
New component: [l:168 ml:169]'Microsoft-OneCore-SecureBootEncodeUEFI-Task, Culture=neutral, Version=10.0.14393.6078, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS'
Install mode: install
Smart installer: FALSE
Installer ID: {<InstallerID>}
Installer name: 'Task Scheduler'
…
Error CSI 00000c63 (F) Logged @: [l:26 ml:27]'JobsHandler::Install enter'
Error CSI 00000c64 (F) Logged @: [l:34 ml:35]'JobsHandler::Install type=4 pass=4'
Error CSI 00000c65 (F) Logged @: [l:36 ml:37]'IsScheduleServiceRunning queries SCM'
Error CSI 00000c66 (F) Logged @: [l:37 ml:38]'IsScheduleServiceRunning returns true'
Error CSI 00000c67 (F) Logged @: [l:23 ml:24]'InstallTaskOnline enter'
Error CSI 00000c68 (F) Logged @: [l:49 ml:50]'InstallTaskOnline: RegisterTask failed 0x80070002'
Error CSI 00000c69 (F) Logged @: [l:70 ml:71]'WmiCmiPlugin jobshandler.cpp(237): RegisterTask failed. HR=0x80070002.'
Error CSI 00000c6a (F) Logged @: [l:57 ml:58]'WmiCmiPlugin plgutil.cpp(217): fnc failed. HR=0x80070002.'
Error CSI 00000c6b (F) Logged @: [l:74 ml:75]'WmiCmiPlugin jobshandler.cpp(364): ForEachElementIn failed. HR=0x80070002.'
Error CSI 00000c6c (F) Logged @: [l:86 ml:87]'WmiCmiPlugin jobshandler.cpp(836): InstallManifestSectionOnline failed. HR=0x80070002.'
Error CSI 00000c6d@2023/8/7:15:43:34.530 (F) CMIADAPTER: Inner Error Message from AI HRESULT = HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
['The system cannot find the file specified.']
Error CSI 00000c6e@ (F) CMIADAPTER: AI failed. HRESULT = HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
…
Error CSI 00000c6f@ (F) CMIADAPTER: Exiting with HRESULT code = HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND).
Error [0x018003] CSI 00000c71 (F) Failed execution of queue item Installer: Task Scheduler ({<InstallerID>}) with HRESULT HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND). Failure will not be ignored: A rollback will be initiated after all the operations in the installer queue are completed; installer is reliable
Error CBS Startup: Failed to process advanced operation queue, startupPhase: 0. A rollback transaction will be created. [HRESULT = 0x800f0922 - CBS_E_INSTALLERS_FAILED]
Info CBS Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Rollback.
Info CBS Setting original failure status: 0x800f0922, last forward execute state: CbsExecuteStateResolvePending
在任务计划程序事件日志中,会看到以下条目:
Log Name: Microsoft-Windows-TaskScheduler/Operational
Source: Microsoft-Windows-TaskScheduler
Event ID: 146
Task Category: Task loading at service startup failed
Level: Error
Keywords:
User: SYSTEM
Description:
Task Scheduler failed to load task "\Microsoft\Windows\PI\SecureBootEncodeUEFI" at service startup. Additional Data: Error Value: 2147942402.
出现此问题是因为计划任务 SecureBootEncodeUEFI 已损坏。
删除暂存程序包并清理已损坏的任务
若要解决此问题,请执行以下步骤:
-
通过运行
get-packagescmdlet 查找暂存更新包:Dism /english /online /get-packages /format:table | findstr /i "Staged" -
通过运行
remove-packagecmdlet 删除暂存更新包。 例如:Dism /online /remove-package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~14393XXXX -
通过运行以下 cmdlet 识别
SecureBootEncodeUEFIGUID:reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PI\SecureBootEncodeUEFI" /v IDcmdlet 输出如下所示:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PI\SecureBootEncodeUEFI ID REG_SZ {<GUID>} -
运行以下 cmdlet 以删除
SecureBootEncodeUEFI注册表值:注意
你需要替换步骤 3 返回的
{GUID}值。reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Maintenance\{GUID}" /f reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Plain\{GUID}" /f reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{GUID}" /f reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PI\SecureBootEncodeUEFI" /f
有关如何清理损坏的任务的详细信息,请参阅 MS10-092:任务计划程序中的漏洞可能允许提升权限。