直接インストールしてみる
KB名でググってみると、Microsoft Update カタログへのリンクを見つけた。
ここからWindows Updateスタンドアロン インストーラーをダウンロードできる。
これを実行すると、
こんなダイアログが表示され、単独でWindows Updateが開始する。
しかしながら、インストールの途中でこの画面に変わってしまう。
理由もなく「インストールされませんでした」と言われましても・・・。
修復を試みる
同様の問題に陥っている例を見つけたので、これを参考に修復を試みる。
Windows Update エラーを修正するの内容に従って、まずWindows Update トラブルシューティングをダウンロードして実行。
この画面のまま割と長い時間待たされた結果、4件中3件は解決した模様。
しかし改善せず。再度Windows Updateのインストールを試みても同じエラーで撃沈。
次の方法は
Windows Updateの一時ダウンロードフォルダをリネームする方法も駄目だった。
%systemroot%\SoftwareDistribution
%systemroot%\system32\catroot2
ちなみに、catroot2の方が使用中で全くリネームできず、仕方なくセーフモードでログオンしてからリネームした。無駄足だったが。
sfc /scannow
も試したが問題なし。
最後に書いてあった最新の Servicing Stack Update (SSU)のインストールも試したが、くっそ時間がかかったのに効果なし。面倒くせぇ。
システム更新準備ツール
次に試したのがシステム更新準備ツール。通常のWindows Update同等にKB番号が振られたファイルをダウンロード。
このインストーラー、サイズが550MBほどある。
実行すると「Windows Updateスタンドアロン インストーラー」とタイトルがついたウィンドウが。
かなり時間がかかったが、問題なくインストール完了。
それから
C:\Windows\logs\cbs\CheckSUR.log
に出力されているログを確認したが
=================================
Checking System Update Readiness.
Binary Version 6.1.7601.22471
Package Version 26.0
2019-04-10 13:00
Checking Windows Servicing Packages
Checking Package Manifests and Catalogs
Checking Package Watchlist
Checking Component Watchlist
Checking Packages
Checking Component Store
Summary:
Seconds executed: 1401
No errors detected
(w) Unable to get system disk properties 0x0000045D IOCTL_STORAGE_QUERY_PROPERTY Disk Cache
特にエラーは見つからなかった。最後の行はエラーっぽいんだが...謎?
これでうまくいくのかな、と思ってWindows Updateスタンドアロン インストーラーを再度実行するも、同様のエラー。
そこで次に確認したのがWindows Updateのログ。
C:\Windows\WindowsUpdate.txt
2019-04-10 13:42:55:510 3532 8d8 Handler FATAL: CBS called Error with 0x80070002,
2019-04-10 13:43:02:218 3532 268 Handler FATAL: Completed install of CBS update with type=0, requiresReboot=0, installerError=1, hr=0x80070002
それから確認したのがこちらのログ。
C:\Windows\logs\cbs\CBS.log
2019-04-10 13:50:34, Info CBS Failed to find file: amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.19100_none_5fbcdc04ff34b8a4\MsSpellCheckingFacility.exe [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 13:50:34, Info CBS Failed to gather all required files. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 13:50:34, Info CBS Failed to gather all missing files for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24385.1.9 [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 13:50:34, Info CSI 000000aa@2019/4/10:04:50:34.815 CSI Transaction @0x1905b210 destroyed
2019-04-10 13:50:34, Error CBS Failed to pre- stage package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24385.1.9 [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 13:50:34, Info CBS Perf: Stage chain complete.
2019-04-10 13:50:34, Info CBS Failed to stage execution chain. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 13:50:34, Error CBS Failed to process single phase execution. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 13:50:34, Info CBS WER: Generating failure report for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24385.1.9, status: 0x80070002, failure source: Stage, start state: Resolved, target state: Installed, client id: WindowsUpdateAgent
2019-04-10 13:50:34, Info CBS Failed to query DisableWerReporting flag. Assuming not set... [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 13:50:34, Info CBS Failed to add %windir%\winsxs\pending.xml to WER report because it is missing. Continuing without it...
2019-04-10 13:50:34, Info CBS Failed to add %windir%\winsxs\pending.xml.bad to WER report because it is missing. Continuing without it...
やたらと目立つのがこのメッセージ。
[HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
何らかのファイルが無いようだが、システムファイルのチェック系は一通り終わっているので希望薄。
このエラーコードとWindows Update画面に出るエラーコード8024200Dでネット検索してみてもズバリ正解は見つからず。
- 削除済みアカウントのフォルダーアクセス権限が残っている場合:
- 実はもうインストールされている(Windows Updateの更新履歴データベースと実際のインストール済みファイルとの不整合)場合
- 万策尽きてリカバリーからやり直した例:
これは万策尽きたパターンか。
重要な更新じゃない方も試してみる
これまで試していたマンスリーロールアップは重要な更新だったが、それ以外にもオプションでの更新項目があったので先にそっちを更新してみた。
5件は成功したがエラーも出た。また80070002だ。これはいよいよWindowsシステム側の問題のように思えてきた。
しかもこの後に再起動したら「Windows を構成するための準備中」のまま動かなくなってげんなり。
丸一日これに時間を費やしていることにいい加減うんざりしていたのでしばらく放置。
ようやく更新&再起動が終わったので再度Windows Updateを起動すると、
↑こっちが「重要」の一覧。これまでエラーで進められなかった2019/3のマンスリー品質ロールアップだけが残っている。
↑そしてこっちが「オプション」の方の一覧。2019/3のマンスリー品質ロールアップのプレビューという項目が増えている。
え、プレビューて何?これまでなかったよね?
もしかして先にこれを入れないとダメだったりする???
ということで早速インストール。これでうまく行ってくれ!!
・・・
・・・・・・
・・・・・・・・・
ということでさようなら。おやすみなさい。
ここ見て
DISM.exe /Online /Cleanup-image /Scanhealth
もやったよ。ダメだったよ。
DISM.exe /Online /Cleanup-image /Restorehealth
はWin8以降からしか対応してなかったからダメだったよ。
他のアップデートも80070002で死んだよ。
Windows Update、もうめちゃくちゃ。
諦めてWindowsを修復するか~。はークソ。
システム回復オプション
PC電源投入後すぐ、Windowsの起動ロゴが出る前にF8キーを押しっぱなしにすることで「詳細ブート オプション」が出る。
「コンピューターの修復」を選択すると「システム回復オプション」が出る。
今回関係ありそうなところ、
「システムの復元」→復元ポイントを作成していないから不可。
「システム イメージの回復」を選択→事前にシステムイメージを作っておかないといけないから不可。
ゴミ
気を取り直して
再度
C:\Windows\logs\cbs\CBS.log
を確認してみた。
2019-04-10 19:15:49, Info CBS Calling client to resolve source, cannot find file 'MsSpellCheckingFacility.exe' at path: \\?\C:\Windows\SoftwareDistribution\Download\1febaf2ca3b4467dd795149823185770\amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.19100_none_5fbcdc04ff34b8a4\MsSpellCheckingFacility.exe
2019-04-10 19:15:49, Error CBS Exec: Failed to pre-stage package: Package_1548_for_KB4489878~31bf3856ad364e35~amd64~~6.1.1.9, file: MsSpellCheckingFacility.exe, source: \\?\C:\Windows\SoftwareDistribution\Download\1febaf2ca3b4467dd795149823185770\amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.19100_none_5fbcdc04ff34b8a4\MsSpellCheckingFacility.exe, sandbox: (null) [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2019-04-10 19:15:49, Info CBS Failed to gather all required files. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2019-04-10 19:15:49, Info CBS Failed to gather all missing files for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24385.1.9 [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2019-04-10 19:15:49, Info CSI 0000000e@2019/4/10:10:15:49.832 CSI Transaction @0x3d0b00 destroyed
2019-04-10 19:15:49, Error CBS Failed to pre- stage package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24385.1.9 [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2019-04-10 19:15:49, Info CBS Perf: Stage chain complete.
2019-04-10 19:15:49, Info CBS Failed to stage execution chain. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2019-04-10 19:15:49, Error CBS Failed to process single phase execution. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2019-04-10 19:15:49, Info CBS WER: Generating failure report for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24385.1.9, status: 0x800f081f, failure source: Stage, start state: Resolved, target state: Installed, client id: WindowsUpdateAgent
2019-04-10 19:15:49, Info CBS Failed to query DisableWerReporting flag. Assuming not set... [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2019-04-10 19:15:49, Info CBS Failed to add %windir%\winsxs\pending.xml to WER report because it is missing. Continuing without it...
2019-04-10 19:15:49, Info CBS Failed to add %windir%\winsxs\pending.xml.bad to WER report because it is missing. Continuing without it...
2019-04-10 19:15:50, Info CBS Reboot mark refs: 0
なんか
MsSpellCheckingFacility.exe
てのが見つからないようなのと、
[HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
てのがたくさん出てる。これでググってみると以下のサイトが見つかる。
同様のエラーが出て困っている人が各種ログをアップロードし、TechNetのMVP保持者に確認してもらった結果が書いてある。
From the cbs log,we can see that the parent of kb can't be found/detected, such as
Parent: Microsoft-Windows-Common-Drivers-Package~31bf3856ad364e35~amd64~ar-SA~6.1.7601.17514,
Parent: Microsoft-Windows-Common-Drivers-Package~31bf3856ad364e35~amd64~en-US~6.1.7601.17514
These packages may corrupted or deleted by mistake.
It is suggested that you can perform an in-place upgrade to fix the corrupted components.
どうやら親になる(インストールに必要な)パッケージが壊れているか、削除されてしまっているために出ているエラーらしい。
確かにログの続きを見てみると、「no parent found」というメッセージがたくさんある。
2019-04-10 19:17:45, Info CBS Appl: detectParent: package: Package_for_KB2656356_SP1~31bf3856ad364e35~amd64~~6.1.1.1, no parent found, go absent
2019-04-10 19:17:45, Info CBS Appl: detect Parent, Package: Package_for_KB2656356_SP1~31bf3856ad364e35~amd64~~6.1.1.1, Parent: Microsoft-ActiveDirectory-WebServices-SrvFnd-Package~31bf3856ad364e35~amd64~~6.1.7601.17514, Disposition = Staged, VersionComp: EQ, ServiceComp: EQ, BuildComp: EQ, DistributionComp: GE, RevisionComp: GE, Exist: present
2019-04-10 19:17:45, Info CBS Appl: detectParent: package: Package_for_KB2656356_SP1~31bf3856ad364e35~amd64~~6.1.1.1, no parent found, go absent
つまり、何かしらインストールに必要なコンポーネントが足りないので、それを修復する必要があるようだ。
その方法についても言及があり、インプレース アップグレードをすれば修正できるらしい。
Windows 7のインプレース アップグレード
まずはWindows 7のインストールisoを用意する。
MSDNからダウンロードしてもいいし、フリーのisoダウンロードソフトを使ってもいい。
次にUNetbootinなどを使ってisoイメージを展開し、setup.exeを実行する。
準備にしばらく時間がかかるが進めていくと、途中で「アップグレード」か「新規インストール」かを聞かれるので「アップグレード」を選択(これをインプレース アップグレードというらしい)。
しかしここでエディション変更をしようとしている、と認識されてエラーが。
残念ながらAnytime Upgradeはもうサービス終了してるよ。
ということで「新規インストール」しか選びようがない。万策尽きて入れ直しパターンやん...。
ということでさようなら。おやすみなさい。
今度こそ本当に。
2019/08/25追記:
コメントで更新に成功した例を教えていただきました。
最後に成功したマンスリーロールアップを特定し、その翌月分からのマンスリーロールアップを手動でインストールされたそうです。その手があったか!
ななし 2019.8.25
はじめまして。
職場のPCがWindowsUpdate上で0x8024200D, CBS.logで0x80070002が表示される、ほぼまったく同じ状況になり、こちらにたどり着きました。
(CheckSUR.log上の最終行の怪しい表示はありませんでした。)
既に再インストールされているとのことですが、自分は以下の手順でWindowsUpdate上からの更新が成功するようになりました。
1 更新履歴、"dism /Online /Get-packages"などで最後に成功したマンスリーロールアップを特定
2 上記の更新プログラムの翌月のマンスリーロールアップをWindowsカタログから入手し、スタンドアロン実行(インストール成功)
3 再起動後、Windows Updateの確認を行い、失敗した最新のマンスリーロールアップ以外の更新プログラムが発生していればインストール
4 失敗したマンスリーロールアップの月まで2~3を繰り返す。
5 失敗したロールアップをインストールする(スタンドアロンでなくWindows Updateから実行して成功しました)。
どこを見てもマンスリーロールアップは累積的なプログラムなので最新のものがあればよいとされていましたが、
最後に成功したロールアップが2016年11月と、長く放置されていたPCだったためか、何かファイルが足りなかったようです。
どなたかの助けになれば幸いです。
確かに私のPCも検証用ということであまり頻繁には更新しておらず、毎月しっかりマンスリーロールアップをインストールしていませんでした。
途中を抜かさずに一つずつ順番にインストールする、という作業が鍵になりそうですね。情報ありがとうございました!!
ふぉっくす 返信
初めまして!
皆さん同じ事で苦労しているんですね。
特にPCに詳しければ詳しいほど気になりますし…!
で、コメントしたのは、私は下記の方法で何とかなったので、ご確認を!
https://qiita.com/kokawa2003/items/67efbccedde5911859fb
ファイルを他のPCから持って来なければいけないので、根本的に解決する方法ではないのですが…。
ふぉっくす 返信
あと、関係ないかもですが、下記も参考にしました。
https://it.srad.jp/story/18/09/26/0513214/
何とかなる事を祈っております。
takeruからふぉっくすへの返信 返信
コメントありがとうございます。無事解決したようで何よりです。
いただいたリンクは記事中でも紹介している(というかこの記事自体がそのリンク先の通りに試している)のですが、当方ではこの方法では解決しませんでした。「マニフェストがない」のが原因ではなかったようなので…。
結局いろいろググって紹介されている方法を試したもののうまくいかず、一からインストールし直しました。こういう問題は原因が分からなくて難しいですね…。
ななし 返信
はじめまして。
職場のPCがWindowsUpdate上で0x8024200D, CBS.logで0x80070002が表示される、ほぼまったく同じ状況になり、こちらにたどり着きました。
(CheckSUR.log上の最終行の怪しい表示はありませんでした。)
既に再インストールされているとのことですが、自分は以下の手順でWindowsUpdate上からの更新が成功するようになりました。
1 更新履歴、"dism /Online /Get-packages"などで最後に成功したマンスリーロールアップを特定
2 上記の更新プログラムの翌月のマンスリーロールアップをWindowsカタログから入手し、スタンドアロン実行(インストール成功)
3 再起動後、Windows Updateの確認を行い、失敗した最新のマンスリーロールアップ以外の更新プログラムが発生していればインストール
4 失敗したマンスリーロールアップの月まで2~3を繰り返す。
5 失敗したロールアップをインストールする(スタンドアロンでなくWindows Updateから実行して成功しました)。
どこを見てもマンスリーロールアップは累積的なプログラムなので最新のものがあればよいとされていましたが、
最後に成功したロールアップが2016年11月と、長く放置されていたPCだったためか、何かファイルが足りなかったようです。
どなたかの助けになれば幸いです。
takeruからななしへの返信 返信
はじめまして。貴重な情報ありがとうございます。
>どこを見てもマンスリーロールアップは累積的なプログラムなので最新のものがあればよいとされていましたが、最後に成功したロールアップが2016年11月と、長く放置されていたPCだったためか、何かファイルが足りなかったようです。
なるほど、確かに私のPCも検証用ということで逐一しっかりアップデートされているわけでは有りませんでした。
途中を飛ばさず一つずつマンスリーロールアップをインストールしていけば、私の環境でもうまく行ったのかもしれません。
ぜひとも本文内に追記する形で紹介させていただきたく思います。