たちまち。

即席で役に立つこと。

WindowsUpdate エラーコード0x800f0831の解決方法

f:id:aposke:20210120125106p:plain

エラーの意味

まず、このエラーの意味は以下のいずれかである模様。

・前提条件となるモジュールが足りていないので失敗する

・WindowsUpdateにうまくアクセスできない

大抵は前者が原因となるだろう。では、足りていない前提条件となるモジュールとは何か? それはログを見て調べることとなる。

ログの場所

CBS.logを確認する。以下の場所に存在している。

C:\Windows\Logs\CBS

ここにCBS.logが出力されているので確認する。

何度かWindowsUpdateを実行している場合は、CbsPersistほにゃららという過去のログになってる可能性もあるので注意。

不足モジュールを特定する

ログを開いたら、「CBS_E_STORE_CORRUPTION」で検索する。

「Store corruption, manifest missing for package: ほにゃらら~」といった文言の箇所が見えるだろう。

ここに記載されているのが不足ているモジュールである。KB番号があれば、それを控える。なければ、最下部の手順へ。

カタログサイトからダウンロードしてインストール

Microsoft Update カタログにアクセスする。

https://www.catalog.update.microsoft.com/

先ほどのKB番号を入れて検索。

ヒットしたモジュールのうち、環境にあったものを選択してダウンロードし、インストール。

インストール後、再度Windows Updateを行って通ることを願おう。

CBS.logにKB番号がない場合

CBS.logにKB番号がなくモジュール名の場合もある。

私の今回のケースでは「Microsoft-Windows-DirectoryServices-ADAM-Client-Package」が表示されていた。

このようになってくると中々解決が難しく、dismツールによるリカバリが必要な事になるようだ。

この時に必要なものは、OSのインストールディスク。

インストールディスクを用意した上で、管理者権限のコマンドプロンプトにて次を実行する。

Dism /Online /Cleanup-Image /RestoreHealth /Source:E:\sources\sxs /limitaccess

※Eドライブにインストールディスクが入っている想定

これでもうまくいかない場合は、中々文献がないので、OSのアップデートをかけてしまうなど、諦めて入れ替えてしまうような策を講じた方が早いかもしれない。