前回まではXiaomエコシステムのネットワークカメラの紹介をしてきました。
今回は先日はまってしまったWindows Updateのエラーについての紹介です。
Windows Updateのエラー0x800f0900
「Windowsの設定」→「更新とセキュリティ」を確認するといつからかWindows Updateが適用できていないことに気づきました。
「更新プログラムのチェック」を選択すると更新プログラムのインストールを開始するのですが、失敗してしまいます。失敗したときのエラーコードは0x800f0900です。
このエラーコード0x800f0900でインストールできない更新プログラムは「2020-03 x64ベースシステム用Windows 10 Version 1903の更新プログラム (KB4540673)」です。
また、この更新プログラムをスキップしようとして「Windows 10、バージョン1909の機能更新プログラム」を導入しようとしたところ、こちらもエラー0x800F0900となってしまいました。
効果が無かった対処方法
Windwos Updateのエラーを検索するといろいろ情報が出てきます。
なんとかエラーを解消しようと試してみたのですが、私の環境では効果が無かったのは次の対処法です。
- トラブルシューティングでWindowsUpdateの修復実行
- Windows Update トラブルシューティング ツール(wu10.diagcab)の実行
- DISMコマンドでシステムファイルの修復
→私の場合はDISMコマンドがエラー0x800f081f でエラーとなってしまいました - SoftwareDistributionフォルダの削除
それぞれの対処法について参考になりそうなサイトへのリンクを張ってあります。
いずれもWindows Updateがエラーとなったときによくとられる対処法のようなのですが、私の場合には全く効果はありませんでした。
エラー0x800f0900は結構重症なようです。
エラー0x800f0900を解決する方法
私がエラー0x800f0900を解決した方法は、次の通りです。
- DISMコマンドで使用するWIMファイルの作成する
(これによりDISMコマンドの0x800f081fエラーを回避します) - DISMコマンドでシステムファイルを修復する
の2ステップでした。
この対処をした後にWindows Updateを実行すると、エラーは発生せずに無事にWindows Updateを完了することができました。
なお、DISMコマンドのエラー0x800f081fを解消する際には下記のサイトが大変参考になりました。ありがとうございました。
この参考にしたサイトとかなりかぶりますが、手順を紹介していきたいと思います。
DISMコマンドのエラー0x800f081f
最初にDISMのエラー0x800f081fが表示される状態を紹介しておきます。
まずWindowsメニューを右クリックして「Windows Power Shell (管理者)」を実行しましょう。
これで管理者用のWindows PowerShellが開きます。
ここでシステムファイルを修復するためには次のコマンドを入力します。
DISM.exe /Online /Cleanup-image /Restorehealth
DISMコマンドによる修復が正常に進むとプログレスバーが100%になり「操作は正常に完了しました」と表示されるはずです。
しかし、私の場合はここでエラーコード0x800f081fが表示され、さらに
機能の復元に必要なファイルの場所を指定するには、”Source” オプションを使用してください。ソースの場所 の指定の詳細について は、http://go.microsoft.com/fwlink/?LinkId=243077 を参照してください。
と表示されました。
これが問題となっているDISMコマンドのエラー0x800f081fです。
なお、Windows PowerShellは以降の処理でも利用するので、閉じないでそのまま残しておきましょう。
WIMファイルの作成
DISMコマンドの”Source”オプションを使うためには、WIMと呼ばれるファイルが必要になります。
このWIMファイルを用意するのかがなかなか面倒でした。
いろいろ手順があるようですが、私はWindows10のインストールメディアを作成し、その中のファイルからWIMファイルを抽出しました。
Windows10のインストールメディアの作成
まずマイクロソフトのサイトからメディア作成ツール(Media Creation Tool)をダウンロードしましょう。
ダウンロードは「ツールを今すぐダウンロード」のボタンでできます。私が試したときには「MediaCreationTool1909.exe」というファイルがダウンロードできました。
作成にはUSBメモリ(SDカードでもOK)が必要になります。PCから読み書きできるようにしておきましょう。
そしてダウンロードしたファイルをダブルクリックして実行します。最初にライセンスの確認がでるので「同意する」を選択します。
次に実行する操作を選択するように表示されるので「別のPCのインストールメディアを作成する」を選択しして「次へ」を選択します。
次に作成するインストールの種類を選択します。エラーを修復したPC上でMedia Creation Toolを実行している場合はデフォルトのままでOKと思いますので「次へ」を選択します。
作成するメディアはUSBフラッシュドライブを選択して「次へ」を選択します。
あとはインストールメディアに用いるUSBメモリ(SDカード)のドライブを選択して「次へ」を選択します。
これでインストールメディアの作成が始まります。インターネット回線の速度にもよりますが10分ぐらいはかかりますのでしばらく待ちましょう。
次のような画面になればインストールメディアの作成完了です。
WIMファイルの抽出
まず作成したインストールメディアのsoucesフォルダにあるinstall.esdというファイルをCドライブにコピーします。約3.5GBの巨大なファイルです。
コピー先はCドライブのTempフォルダ(C:\Temp)にしておきましょう。
次にDISMコマンドを使ってinstall.esdの中身を確認します。管理者用のWindows Powershell (起動方法はこのページの上の方に記載してあります)で、次のように入力します。
cd C:\Temp DISM /Get-ImageInfo /ImageFile:install.esd
実行結果は次のようになるはずです。
ここで重要なのは、自分の利用しているWindows10のエディションのインデックスです。
例えば、Windows 10 Homeを利用していればインデックスは「1」になりますし、Windows 10 Proを利用していればインデックスは「3」になります。
インデックスを把握したら先ほどのWindows PowerShellで次のコマンドを入力します。ここで「/SourceIndex:」の続く数値は先ほど確認した自分のWindows 10に対応した数値です。
dism /export-image /SourceImageFile:install.esd /SourceIndex:1 /DestinationImageFile:install.wim /Compress:max /CheckIntegrity
このコマンドはかなり時間がかかりますので、のんびり待ちましょう。私は結構高速なCPUとSSDを利用していますが30分以上かかりました。
次のようになればWIMファイル(install.wim)の抽出が完了です。
同じフォルダ(C:\Temp)に「install.wim」というファイルができているはずです。
なお、Windows PowerShellは以降の処理でも利用するので、閉じないでそのまま残しておきましょう。
DISMコマンドでシステムファイルを修復する
WIMファイル(install.wim)の用意ができたらこのファイルを利用してDISMファイルのエラー0x800f081fを回避しつつ、システムファイルを修復します。
この作業にも管理者用のWindows PowerShellを利用します。
まず、次のコマンドを実行します。
DISM /Online /Cleanup-Image /StartComponentCleanup
このコマンドも多少時間(10分ぐらい)がかかります。100%まで行けばOKです。
続いて次のコマンドを実行します(このコマンドは不要かもしれません)。
DISM /Online /Cleanup-Image /AnalyzeComponentStore
こちらは割とすぐに終わります。
次が重要です。先ほど抽出したWIMファイル(install.wim)を使ってシステムファイルを修復します。このとき
DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:C:\Temp\install.wim:1 /LimitAccess
こちらも数分で終了します。100%になって正常に完了すれば成功です。
最後にシステムファイルをスキャンして問題ないかどうかを確認しましょう。
sfc /scannow
私の場合は次のようになりました。
100%まで到達したものの「破損したファイルが見つかりましたが、それらは正常に修復されました」と表示されました。
これでも問題ありません。
ここまできたらいったんWindows 10を再起動しましょう。
Windows Updateの再実行
Windows 10を再起動したら「Windowsの設定」→「更新とセキュリティ」でWindows Updateを実行してみましょう。
エラー0x800f0900を引き起こしていた更新が問題なくインストールできればOKです。
まとめ
今回はWindows Updateがエラー0x800f0900となっていた状況を解決したことを紹介しました。
なかなか解決できなかったのですが、DISMというコマンドにWIMファイルを指定することで私の場合は回復することができました。
同じ問題にはまっている方は試してみてください。
次回はDJIのビデオカメラOSMO POCKETを購入したことを紹介します。
コメント
いつも楽しく拝見しております。
僭越ながら「DISM /Get-ImageInfo /ImageFile:install.esd」での
WIN10Proのインデクス番号は「3」ではないでしょうか。
当方の間違いでしたらすいません。
当方もSYS修復で参考にさせていただき、同じツリー構成で行っていますが、
「DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:~」で
「ソースが見つかりません」となって困っております。
ここまでは順調だったのですが…。
「ローカルグループポリシー」も通してみたのですが結果は同じです。
どこか注意点があればご指南くだされば助かります。
最後になりましたが、これからも楽しく役に立つ記事を楽しみにしております。
コメントありがとうございます。
確かにインデックス番号は「3」ですね。修正しておきました。ご指摘ありがとうございます。
DISMのRestoreHealthでWIMファイルを指定してもソースは見つかりませんといのはおかしいですね。
私の記憶だと、私も「ソースが見つかりません」となった記憶があって、そのときはWIMの後ろのファイルパスを手打ちではなく、エクスプローラからコピペしたら大丈夫でした。
単なる打ち間違えだったのかもしれませんが・・・
連投失礼いたします。
おかげさまでDISMによるSYS修復が完了いたしました。
原因はやはりパスで、カギは返答を頂いた「エクスプローラ」でした。
「エクスプローラー」からパスをコピペしたところ、
直ぐに治ってしまいました(あっけ)。
当方は自分の手入力は信用していないため基本コピペなのですが、
長年ファイラー&cmdを使用しており今まで問題はありませんでした。
「DISMはセンシティブでファイル名の大文字小文字まで注意」とありましたが、
まさかこんなオチがあるとは。
記事&コメが大変参考になりました。ありがとうございました。
追記:参考になれば…
例えば「dism /export-image /SourceImageFile:install.esd /SourceIndex:3 /~」で、
抽出した「install.wim」はエディションにかかわらずインデクス番号が「1」に書き換わります。
なので、
「DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:~」での
インデクス番号は「1」の固定になります。
これは「DISM /Get-ImageInfo /ImageFile:install.wim」で確認できます。
当方はSFCでの結果は「NET FrameworkのVer不整合」のエラーでした。
なのでDISMの「0x800F0906、0x800F081F、0x800F0907エラー癖」と混在してしまい、
手間取ってしまいました。
そこで「NET Framework」の機能を止めてみてはいかがでしょう。
WIN10ではNET Frameworkがパッキングされていることですし、
機能を止めてのSFC&DISMは理にかなうと思います。
乱筆失礼しました。
無事に修正できたようで良かったです。
私は0x800f0900エラーでWindows Updateができなくなってこまっていて、修正するのにかなりの時間がかかりました。
このブログが役に立って良かったです。