次の方法で共有


Windows 更新プログラムのインストール時にスケジュールされたタスクが破損したために発生するエラー 0x800f0922

この記事は、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 タスクが破損しているために発生します。

ステージングされたパッケージを削除し、破損したタスクをクリーンする

この問題を解決するには、次の手順を実行します。

  1. コマンドレットを実行して、ステージングされた更新パッケージを get-packages 見つけます。

    Dism /english /online /get-packages /format:table | findstr /i "Staged"
    
  2. コマンドレットを実行して、ステージングされた更新パッケージを remove-package 削除します。 例:

    Dism /online /remove-package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~14393XXXX
    
  3. 次のコマンドレットを SecureBootEncodeUEFI 実行して、GUID を特定します。

    reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PI\SecureBootEncodeUEFI" /v ID
    

    コマンドレットの出力は次のようになります。

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PI\SecureBootEncodeUEFI
    ID    REG_SZ    {<GUID>}
    
  4. レジストリ値を削除するには、次のコマンドレットを 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: タスク スケジューラの脆弱性によって特権が昇格される可能性がある」を参照してください。