古いマシンでWindows10をリカバリする機会がありました。リカバリディスクで工場出荷状態へ戻した後、WindowsUpdateを行っていこうとするもうまくいかず、dismコマンドでも「ソースファイルが見つかりませんでした」エラー(0x800f081f)となりました。ここでは解決策について詳しく解説します。
この現象が出た背景
リカバリディスクを使って工場出荷状態に戻すと、Windows10のバージョン(OSビルド)も当時のものになるので、WindowsUpdateをあてていく作業が必要になります。
ちなみに下記がWindows10のバージョンの変遷です。該当マシンの現在のバージョンはwinverコマンドで10586であることを確認。
リリース | バージョン | OSビルド番号 | コードネーム |
2022年10月 | 22H2 | ||
2021年11月 | 21H2 | 19044 | 21H2 |
2021年5月 | 21H1 | 19043 | 21H1 |
2020年10月 | 20H2 | 19042 | 20H2 |
2020年5月 | 2004 | 19041 | 20H1 |
2019年10月 | 1909 | 18363 | 19H2 |
2019年5月 | 1903 | 18362 | 19H1 |
2018年10月 | 1809 | 17763 | Redstone 5 (RS5) |
2018年4月 | 1803 | 17134 | Redstone 4 (RS4) |
2017年10月 | 1709 | 16299 | Redstone 3 (RS3) |
2017年4月 | 1703 | 15063 | Redstone 2 (RS2) |
2016年8月 | 1607 | 14393 | Redstone 1 (RS1) |
2015年11月 | 1511 | 10586 | Threshold 2 (TH2) |
2015年7月 | 1507 | 10240 | Threshold 1 (TH1) |
今回、アップデート実行時に以下のような感じで、明らかに古いのにこれ以上アップデートできない旨のメッセージが出ました。
お使いのデバイスは最新の状態です。最終確認日:今日、XX:XX
![](https://exam-knock.com/exam/wp-content/uploads/2023/05/01.png)
そこで以下を試していきました。
dismコマンドを試す
dism (Deployment Imaging Service and Management) コマンドというのは、Windowsのシステムイメージを管理・修復するためのツールです。具体的には、Windowsイメージの展開、キャプチャ、サービス、修復などをするもので、とりわけ、破損したシステムファイルの修復やWindowsのイメージファイルのメンテナンスに使用されます。例えば、以下のようにコマンドを打つことで実行できます。
> dism.exe /online /cleanup-image /restorehealth
では早速管理者権限でdismコマンドを実行してみましょう。
すると…
Windows10
展開イメージのサービスと管理ツール
バージョン: 10.0.10586.0
イメージのバージョン: 10.0.10586.0
[==========================100.0%==========================]
エラー: 0x800f081f
ソース ファイルが見つかりませんでした。
機能の復元に必要なファイルの場所を指定するには、"Source" オプションを使用してください。ソースの場所の指定の詳細について は、http://go.microsoft.com/fwlink/?LinkId=243077 を参照してください。
DISM ログ ファイルは C:\Windows\Logs\DISM\dism.log にあります
なんと、ソースファイルが見つかりませんでしたとのこと。
sfc /scannow コマンドを試す
次にsfc / scannowコマンドを試します。これは、ファイルチェッカー(SFC)を使用して、Windowsシステムファイルの整合性をチェックし、破損したファイルを自動的に修復するコマンドです。このコマンドを実行することで、システムファイルの問題を検出し、Windowsの安定性を保つことができます。先ほどと同じく管理者権限で実行する必要があります。
> sfc /scannow
実行してみると…
システム スキャンを開始しています。これにはしばらく時間がかかります。
システム スキャンの検証フェーズを開始しています。
検証 100% が完了しました。
Windows リソース保護により、破損したファイルが見つかりましたが、それらの
一部は修復できませんでした。詳細は CBS.Log windir\Logs\CBS\CBS.log に
含まれています。例: C:\Windows\Logs\CBS\CBS.log。ただし、オフライン
サービス シナリオでのログの記録は現在サポートされていません。
何かもう少し根深い問題がありそうですね。
最終的な着地点
本来であれば、ここから先も試せることはまだまだありそう。例えば以下のような感じで。dism実行時にソースを指定してみるなどもできます。
DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:D:\Sources\Install.wim:1 /LimitAccess
だけどよく考えるとこのマシンはかなり古いバージョン(OSビルド)であり、最新にするために、WindowsUpdateを順番にあてていくのでは時間がかかりすぎてしまいます。
強制的に最新バージョンを早いということです。
ということで、今回はWindows10の最新isoをダウンロードし、更新アシスタントを実行するという方法をとりました。特に問題なく無事にアップデートすることができました。
Windowsにはこういった思いもよらない問題が多く発生しますが、詳細な手順やその他のトラブルシューティングについては、以下の書籍を参考になりそうです。
![](https://done.sakura.ne.jp/technote/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![](https://done.sakura.ne.jp/technote/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)