
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ メモ. Windows Updateで遭遇した解決不能な更新エラー(0x800f0831エラー)の解決|Windowsトラブル解決
2025年01月21日配信
2025年04月23日更新
執筆者:山内 和朗
2025年1月15日(日本時間)は、今年初めてのWindows向けのセキュリティを含む品質更新プログラム(累積更新プログラム)のリリース日でした。その日、いつものように、物理環境とHyper-V仮想マシン(VM)の評価環境に存在するすべてのWindowsに対して、Windows Updateを実施しましたが、その中の1台だけ、OSの累積更新プログラムがエラー「0x800f0831」で失敗するというケースに遭遇しました。
同一バージョンのOSを実行するVMが複数あるにもかかわらず、問題が発生したのは、Windows Server 2022 Standard Evaluation(180日評価版)を実行する1台のHyper-V VMだけでした。その日にリリースされたOSビルド.リビジョンを「20348.3091」に更新する2025年1月の累積更新プログラム「KB5049983」(https://support.microsoft.com/help/5049983)だけがエラー「0x800f0831」で失敗するのです(画面1)。同じ日にリリースされた、.NET Frameworkの累積更新プログラム、Microsoft Defender Antivirusのセキュリティインテリジェンス更新プログラム、悪意のあるソフトウェアの削除ツールは正常にインストールされていました。
画面1 OSの累積更新プログラムだけがエラー「0x800f0831」で失敗するように
エラー「0x800f0831」の原因と対処方法については、Microsoftの以下のドキュメントにすぐ見つかりました。方法の1つは、DISMコマンドとSFCコマンドでコンポーネントストアの破損を修正することです。もう1つの方法は、Microsoft Updateカタログから更新プログラムのインストーラー(MSU)をダウンロードして、手動でインストールするというものです。いずれの方法も試みましたが、問題は解決しませんでした。DISMコマンドによる修復(/RestoreHealth)は失敗し、「/Source」の指定が求められました。インストールメディアのWIMファイル(WIM:D:¥Sources¥install.wim:2)、マウントしたWIMのマウントポイント、インストールメディアのSxSフォルダー(Sources¥SxS)、「/LimitAccess」の指定など、複数の代替ソースを試しましたが、いずれも失敗し、再び「/Source」の指定を要求される状態です。
更新プログラムをインストールするときのエラー 0x800f0831|Microsoft Intune(Microsoft Learn)
「C:¥Windows¥Logs¥CBS¥CBS.log」の内容は、以下のQ&Aの質問によく似たものでしたが、回答にある対処方法も問題を解決してはくれませんでした。
0x800f0831 error, what is the missing package?|Q&A(Microsoft Learn)
どうにかして問題を解決しようとしましたが、結局のところ解決できませんでした。しかも、コンポーネントストアの修復は、成功/失敗に関係なく時間のかかる操作です。解決策をブログネタにしようかと頑張りましたが、時間の無駄でした。
このように、原因不明、対処方法不明の、どうやっても自己解決できない更新プログラムのインストール失敗問題は稀にあります。
問題の環境はHyper-V VMであり、毎月の更新プログラムのインストール前にスナップショットを作成しています。通常は前回の(12月の)チェックポイントだけを残すようにしているのですが、幸運なことに11月に作成したチェックポイントも残っていました(Windows Server 2025へのインプレースアップグレードを確認するために、その直前に作成したもの)。12月のチェックポイントは、現在実行中のVMと大差のない状態です。12月の更新後、1月はじめに監視ツールのエージェントをアップデートしただけのものです。現在の問題ある状態は、前回の累積更新プログラムのインストールしたときからのようで、問題は再現しました。また、12月の累積更新プログラムのアンインストールもできない(失敗する)状態でした。そこで、11月のチェックポイントを適用してVMを起動しました。Windows Updateを実行してみると、1月の累積更新プログラムのダウンロードとインストールが行われ、何事もなかったかのように最新のOSビルド.リビジョン「20348.3091」に更新することができました(画面2)。
画面2 2024年11月に作成したチェックポイントの状態に戻すことで問題は即時解決
物理サーバーの場合は、チェックポイントのような便利な機能はないので、「Windows Serverバックアップ」などを使用して、システム(ベアメタル回復用)のバックアップを定期的に、複数世代を取得しておくことが重要です。Windows Updateに限らず、何か原因不明の問題が発生しても、Windows回復環境(WinRE)の「トラブルシューティング|イメージでシステムを回復」を使用して、問題が再現しない過去のシステムイメージの状態に戻すことができます(画面3)。イメージの回復は意外と高速であり、数十分(OSボリュームの使用量に依る)で完了します。新規インストールやアップグレードインストールと比べれば、あっという間です。
画面3 バックアップからのシステムイメージの回復は数十分で完了
チェックポイントもバックアップが存在しない、あるいは利用しても問題が再現するという場合、同一バージョンのOSへのインプレースアップグレード(アップグレードインストール)という方法もあります(画面4)。ただし、今回のような、Evaluation(180日試用版)では利用できません。Evaluationエディションはインプレースアップグレードに対応していないためです。
画面4 Windows Updateの解決不能なエラーなど、問題のある状態を同一OS/バージョンへのインプレースアップグレードで解決する
このトラブル解決方法があることは知っていましたが、これまで実際に行ったことはありませんでした。そこで、Windows Server 2022 Standardがインストールされた正常な状態のVM(1月の累積更新プログラムはインストール済み)で試してみました。インプレースアップグレード後、OSビルド.リビジョンは最新の「20348.3091」で、Microsoft Edgeも最新バージョンになっており、システム設定を含め、何も変わった様子がありません。違いがあるとすれば、「C:¥Windows.old」の存在です。
もしかしてインプレースアップグレードの失敗と以前の状態へのロールバックを見逃したのではと思い、Systeminfoコマンドでインストール日を確認してみたところ、インストール直後の日付を示しており(インプレースアップグレード前のインストール日は2024年6月13日)、インプレースアップグレードが成功したことを確認することができました(画面5)。
画面5 インターネット接続が利用可能であれば、最新のOSビルド.リビジョン、最新のMicrosoft Edgeに更新された状態でインプレースアップグレードが完了