【Windows10】0x800f0823エラーでWindowsUpdateに失敗したときの解決方法について

Windows

こんにちは!今回はWindowsUpdateのエラーで「0x800f0823」が発生したときの対処方法についてまとめていきたいと思います。

事象

WindowsUpdateを実行しようとしたときに、設定の画面やイベントビューアなどのログに「 0x800f0823 」のエラーコードが記録されることがあります。

この状態ではWindowsUpdateを適用することができません。

原因

WindowsUpdateには更新本体とは別にSSU:サービススタック更新プログラムというものが存在しています。これが事前にインストールできていないと更新のインストールに失敗してしまいます。

Windows を実行しているコンピューターに .msu 更新プログラム パッケージをインストールするときのエラー メッセージ: 「このパッケージをインストールする前に、Windows モジュール インストーラーを更新する必要があります」 - Microsoft サポート
インストールは、サービス スタックとも呼ばれる Windows モジュール インストーラーの新しいバージョンを必要とするために発生する問題について説明します。この問題を解決するには、Windows モジュール インストーラーを更新するのには Windows Update を使用します。

また、最近のWindowsUpdateではこのSSUが内包されているため、本来では気にしなくてもよいのですが、内包されているSSUの適用順番が自動インストールでは後になってしまうこともあるため、最新のものを適用するだけでは回避できないことがあります。

解決方法

SSUを手動適用する

非常にややこしいのですが、下記の順番でSSUを適用してあげれば解決することができました。

・2021年1月SSU(KB4598481)

Microsoft Update Catalog

・2021年8月SSU(KB5005260)

Microsoft Update Catalog

・2021年10月現在の最新の更新プログラム(KB5006670)

Microsoft Update Catalog

※それぞれの環境にあった更新プログラムをダウンロードして順番に適用してください。

このようにSSUは適用する順番によって完了できなかったりすることが多々あります。
似たような状況に陥った場合でも以前にリリースされているSSUを適用することで回避することができることがあります。

DISMによるSSU適用の優先化

最新の更新プログラムにもSSUが内包されていると先ほど書かせていただきました。
そのため、更新プログラムを分解して中のSSUを先に適用してしまえば更新プログラムを実行できる状態になることも多いです。

Expandコマンドを使用した展開の例

Expandコマンドで分解する場合、展開先ディレクトリが必要なので今回はc:\tempを作成しそこに格納するようにしました。Expandコマンドで全展開する場合は下記のようなコマンドでよいでしょう。

expand [ファイルパス].msu -f:* [展開先]
[ファイルパス]:展開したいMSUファイルのパス
[展開先]:分解したファイルが格納されるパス  

これが成功すると、展開先ディレクトリにCABファイルが格納されます。

展開後のディレクトリ

この中からSSUから始まるファイルが一緒に同梱されているサービススタックプログラムです。
SSU単品での適用は下記コマンドで実行できます。

DISM /online /add-package /packagepath:[ファイルパス]
[ファイルパス]:SSUのCABファイルへのパス

これが成功した後に元のMSUファイルを再実行すればSSU適用済みの状態で更新プログラムを実行できます。これによって問題が解消できていれば正常に適用できるはずです。

DISMを使ったOS修復

上記の方法で修復できなかった場合、OSの破損が疑われます。DISMによる修復を実行するのが良いと思います。

RestoreHealthだけでなく、ComponentCleanupも有効であることが多いので合わせて実行するのがおすすめです。同様に修復するコマンドである「sfc」やディスク修復コマンドである「chkdsk」なども併用すると尚良いでしょう。

chkdsk /f
sfc /scannow
DISM /Online /Cleanup-image /StartComponentCleanup
DISM /Online /Cleanup-image /RestoreHealth

※ハードディスクが物理的に壊れているときにも同様のエラーが表示されることがあります。その際はchkdskにて症状を加速させてしまうこともありますので、状況に合わせてお使いください。あくまでもハードウェア的に故障障害が起きていないことが前提です。

別の記事でこれらのツールは解説しておりますので、良ければこちらもご参照ください。

トラブルシューティングツールを使った修復

トラブルシューティングツールでの自動修復も有効です。
私が遭遇したケースではかなりの頻度で解決することができています。

大体のケースでは古い機能に破損があり、それを修復してくれることによって直っているといった印象です。

こちらも使い方について解説していますのでこちらの記事をどうぞ。

OS上書きによる修復

最後はいつものOS上書きによる修復です。
強力な修復方法ではありますが、手間がかかります。

時間に余裕のある場合は候補に挙がってくると思いますので、最後の手段として実行してみるとよいかもしれません。

OS上書きについてはこちらをご参照ください。

あとがき

今回は0x800f0823のエラーについてSSUを適用することで回避する方法を紹介させていただきました。

原因としてはSSUが足りないだけなのですが、SSUもSSUを必要としたりと割とややこしいモノになってしまっています。
今回は手順の簡略化も含めて、ダウンロード→実行で解決できる方法を最初に紹介しましたが、本来であればKBに対して必要なSSUは決まっているので、Microsoftのサポートぺージとにらめっこする必要があります。

更新プログラムにSSUが微妙に含まれてないという、今の時期だから発生する事象なので、今後は発生しないような気もします。

MSUファイルについては本来ただの圧縮ファイルなのですが、WUSAに受け渡すためだけに.msuという拡張子になっているようですね。単純に.cabに拡張子を変えて解凍ソフトで解凍しても同じ結果が得られます。一応知識としてご参考までに…。

何かのお役に立てれば幸いです。

コメント

Translate »
タイトルとURLをコピーしました