前回は、Windows Updateの失敗の対策として、コンポーネントストアを修復する方法について説明しました。今回は同じ方法なのですが、Windows Updateサーバーにつなげない場合でも修復する方法の紹介です。
Windows Updateサーバーを使ったコンポーネントストアの修復
前回に紹介したコンポーネントストアの修復方法はDISMを使う以下の方法でした。
DISMを使うには、管理者権限が必要です。まずは、管理者権限でコマンドプロンプト(cmd.exe)やWindows PowerShell (PowerShell.exe)、Windowsターミナル(wt.exe)などのコンソールを起動します。
実際に、修復するためには、管理者権限のコンソールから、dismを以下の引数で実行します。
dism /Online /Cleanup-Image /RestoreHealth
この方法では、修復に必要なファイルをWindows Updateサーバーから取得します。Windows UpdateサーバーにつながるPC環境であれば、これで修復は完了できます。
しかし、ドメインに参加しているPCなどの場合、グループポリシーで、マイクロソフトのWindows Updateサーバーに接続することを禁止されていることがあります。
このようなPC環境では、Windows Updateサーバーから修復に必要なファイルを取得することができません。その結果、以下のようなエラーコード 0x800f081fのエラーが出力されます。
C:\>dism /Online /Cleanup-Image /RestoreHealth 展開イメージのサービスと管理ツール バージョン: 10.0.19041.844 イメージのバージョン: 10.0.19043.1320 [==========================100.0%==========================] エラー: 0x800f081f ソース ファイルが見つかりませんでした。 機能の復元に必要なファイルの場所を指定するには、"Source" オプションを使用してください。ソースの場所の指定方法の詳細については、https://go.microsoft.com/fwlink/?LinkId=243077 を参照してください。 DISM ログ ファイルは C:\WINDOWS\Logs\DISM\dism.log にあります C:\>
このエラー 0x800f081f は、修復するために必要なファイルを見つけることができなかったときのエラーです。
このように、Windows Update経由で修復用のファイルが取得できないときは、別の方法で修復するために必要なファイルを用意します。
修復に必要なファイルソース
DISMで、コンポーネントストアの修復を行う場合、既定ではWindows Updateサーバーから修復用ファイルを取得します。
しかし、引数で明示的にファイルソースを指定することもできます。ファイルソースとして利用できるのは、
- Windowsフォルダー
- WinSxSフォルダー
- Windows Image ファイル(.wim)
のいずれかです。
WindowsフォルダーやWinSxSフォルダーは、正常稼働しているWindows PCから持ってくることにより可能です。ただし、修復に必要としているファイルのバージョンまで一致したものが存在する必要があります。
Windows Imageファイル(.wimファイル)を使う場合は、Windows のインストールイメージ(isoファイルなど)にあるものを使うことになります。
ファイルソースとしてフォルダーを使う場合の修復
ファイルソースとしてフォルダーを使う場合は、以下のように指定します。
dism /Online /Cleanup-Image /RestoreHealth /LimitAccess /Source:C:\mount\Windows
/LimitAccess
は、Windows Updateサーバーに接続しないためのオプションです。しかし、なくても問題ありません。
/Source
は、ファイルソースとしてフォルダーを指定するためのオプションです。
ソースとなるフォルダーが用意できる場合はこれで問題ありません。フォルダーを指定したのに、引き続き0x800f081fのエラーが表示される場合は、指定したフォルダーの中に必要としているファイル名およびバージョンのファイルが存在していません。
ファイルソースとしてWindows Imageファイルを使う場合の修復
ファイルソースとしてWindows Imageファイルを使う場合は、以下のように指定します。
dism /Online /Cleanup-Image /RestoreHealth /LimitAccess /Source:wim:K:\sources\install.wim:Index
/LimitAccess
は、Windows Updateサーバーに接続しないためのオプションです。しかし、なくても問題ありません。
/Source
:wim は、ファイルソースとしてWindows Imageファイルを指定するためのオプションです。最後の :Index
は、Windows Imageファイルの中の何番目のイメージを使うかを指定します。Index
は1以上の値となります。
Windows Imageファイルの準備
Windows Imageファイルを使って修復する場合には、Windows Imageファイル(wimファイル) をどこからか入手する必要があります。一番簡単な方法は Windowsのインストールイメージ(.isoファイル)を使う方法です。
Windowsのインストールイメージは、
などからだれでもダウンロードできます。ただし、上記のサイトからダウンロードできるのは最新版のイメージのみです。
また、Windowsの開発者の多くが契約することの多い開発系のサブスクリプションであるVisual Studio サブスクライバーであれば、
からダウンロードできます。このサイトからは、最新版のイメージだけでなく、過去のRTMイメージ、および、毎月のセキュリティ更新を適用したイメージなど、いろいろなインストールイメージがダウンロードできます。
Windowsのインストールイメージ(.isoファイル)が入手できれば、イメージに含まれるwimファイルを使うことができます。wimファイルは、イメージの中に \sources\install.wim という名前で存在します。
wimファイルのIndex情報を確認
Windows Imageファイル(wimファイル)は、一つのファイルに複数のイメージを持つことが可能です。修復のファイルソースとしてwimファイルを使う場合は、どのイメージを使用するかを指定する必要があります。
たとえば、Windows 10 21H1 Comsumerのインストールイメージ(ja_windows_10_consumer_editions_version_21h1_x64_dvd_31e0959d.iso)のinstall.wimファイルであれば、
- Windows 10 Home
- Windows 10 Education
- Windows 10 Pro
- Windows 10 Pro Education
- Windows 10 Pro for Workstations
と複数のイメージが含まれています。この中から正しいイメージを選択し、Indexを指定する必要があります。Index情報の確認はDISMコマンドの/Get-ImageInfo
で可能です。
先ほどのisoファイルがMドライブにマウントされている場合、M:\sources\install.wim
の場所にinstall.wim
ファイルが存在し、そのinstall.wim
で実行すると以下の結果が得られます。
C:\>dism /Get-ImageInfo /ImageFile:M:\sources\install.wim 展開イメージのサービスと管理ツール バージョン: 10.0.22000.653 イメージの詳細: M:\sources\install.wim インデックス: 1 名前: Windows 10 Home 説明: Windows 10 Home サイズ: 15,237,935,499 バイト インデックス: 2 名前: Windows 10 Education 説明: Windows 10 Education サイズ: 15,494,124,328 バイト インデックス: 3 名前: Windows 10 Pro 説明: Windows 10 Pro サイズ: 15,491,336,787 バイト インデックス: 4 名前: Windows 10 Pro Education 説明: Windows 10 Pro Education サイズ: 15,494,062,746 バイト インデックス: 5 名前: Windows 10 Pro for Workstations 説明: Windows 10 Pro for Workstations サイズ: 15,494,093,537 バイト 操作は正常に完了しました。 C:\>
修復しようとしているWindows 10が、Windows 10 Proなら、使用すべきIndexは3であることがわかります。
isoイメージを使って修復するためのコマンド
結果として、Windows 10 Proを修復をするためのコマンドは、以下のようになります。
dism /Online /Cleanup-Image /RestoreHealth /LimitAccess /Source:wim:M:\sources\install.wim:3
Windowsのインストールイメージ(isoファイル)がMドライブにマウントされている場合の例となります。
修復成功の場合
isoイメージ内に、修復に必要なファイル名とバージョンのファイルが存在すれば、上記の方法で修復が可能です。
C:\>dism /Online /Cleanup-Image /RestoreHealth /LimitAccess /Source:wim:M:\sources\install.wim:3 展開イメージのサービスと管理ツール バージョン: 10.0.19041.844 イメージのバージョン: 10.0.19043.1320 [==========================100.0%==========================] 復元操作は正常に完了しました。 操作は正常に完了しました。 C:\>
引き続き修復が失敗する場合
もし、指定したisoイメージに、修復に必要なファイル名とバージョンのファイルが存在しなければ、引き続き以下の結果となり、修復ができません。
C:\>dism /Online /Cleanup-Image /RestoreHealth /LimitAccess /Source:wim:M:\sources\install.wim:3 展開イメージのサービスと管理ツール バージョン: 10.0.19041.844 イメージのバージョン: 10.0.19043.1320 [==========================100.0%==========================] エラー: 0x800f081f ソース ファイルが見つかりませんでした。 機能の復元に必要なファイルの場所を指定するには、"Source" オプションを使用してください。ソースの場所の指定方法の詳細については、https://go.microsoft.com/fwlink/?LinkId=243077 を参照してください。 DISM ログ ファイルは C:\WINDOWS\Logs\DISM\dism.log にあります C:\>
次回は、ファイルソースを指定したにもかかわらず、「修復用ファイルが見つからないエラー」が表示される場合の、ファイルの特定方法を紹介します。
“Windows Updateの累積更新プログラムのインストールに失敗(0x800f0989)する – 修復方法2” への1件の返信