Windows Updateでマンスリー品質ロールアップが失敗し続ける[Windows7]

仕事で使っている検証機(Windows7)のWindows Updateが延々と失敗し続けるので履歴を確認すると、「Windows 7 向けセキュリティ マンスリー品質ロールアップ」がことごとく失敗している。

monthly_rollup.png

具体的には2018/12分(KB4471318)、2019/03分(KB4489878)、2019/04分(KB4493472)の3つ。

これを何とか修正しようと色々頑張ったけど、結局ダメだったのでここで供養。

最後まで読んでも解決しないのでご注意を(何かのヒントになれば幸いだけども)。

コメントで成功例を教えていただきました記事末尾を参照ください。

 

 

直接インストールしてみる

KB名でググってみると、Microsoft Update カタログへのリンクを見つけた。

ここからWindows Updateスタンドアロン インストーラーをダウンロードできる。

monthly_rollup2.png

これを実行すると、

monthly_rollup5.png

こんなダイアログが表示され、単独でWindows Updateが開始する。

monthly_rollup6.png

しかしながら、インストールの途中でこの画面に変わってしまう。

monthly_rollup7.png

理由もなく「インストールされませんでした」と言われましても・・・。

 

修復を試みる

同様の問題に陥っている例を見つけたので、これを参考に修復を試みる。

Windows Update エラーを修正するの内容に従って、まずWindows Update トラブルシューティングをダウンロードして実行。

monthly_rollup8.png

この画面のまま割と長い時間待たされた結果、4件中3件は解決した模様。

monthly_rollup3.png

monthly_rollup4.png

しかし改善せず。再度Windows Updateのインストールを試みても同じエラーで撃沈。

 

次の方法は

Windows Updateの一時ダウンロードフォルダをリネームする方法も駄目だった。

%systemroot%\SoftwareDistribution
%systemroot%\system32\catroot2

ちなみに、catroot2の方が使用中で全くリネームできず、仕方なくセーフモードでログオンしてからリネームした。無駄足だったが。

sfc /scannow

も試したが問題なし。

monthly_rollup9.png

最後に書いてあった最新の Servicing Stack Update (SSU)のインストールも試したが、くっそ時間がかかったのに効果なし。面倒くせぇ。

 

システム更新準備ツール

次に試したのがシステム更新準備ツール。通常のWindows Update同等にKB番号が振られたファイルをダウンロード。

monthly_rollup10.png

このインストーラー、サイズが550MBほどある。

実行すると「Windows Updateスタンドアロン インストーラー」とタイトルがついたウィンドウが。

monthly_rollup11.png

かなり時間がかかったが、問題なくインストール完了。

monthly_rollup12.png

それから

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でネット検索してみてもズバリ正解は見つからず。

これは万策尽きたパターンか。

 

重要な更新じゃない方も試してみる

これまで試していたマンスリーロールアップは重要な更新だったが、それ以外にもオプションでの更新項目があったので先にそっちを更新してみた。

monthly_rollup15.png

5件は成功したがエラーも出た。また80070002だ。これはいよいよWindowsシステム側の問題のように思えてきた。

しかもこの後に再起動したら「Windows を構成するための準備中」のまま動かなくなってげんなり。

monthly_rollup16.png

丸一日これに時間を費やしていることにいい加減うんざりしていたのでしばらく放置。

 

ようやく更新&再起動が終わったので再度Windows Updateを起動すると、

monthly_rollup18.png

↑こっちが「重要」の一覧。これまでエラーで進められなかった2019/3のマンスリー品質ロールアップだけが残っている。

monthly_rollup17.png

↑そしてこっちが「オプション」の方の一覧。2019/3のマンスリー品質ロールアップのプレビューという項目が増えている。

え、プレビューて何?これまでなかったよね?

もしかして先にこれを入れないとダメだったりする???

monthly_rollup19.png

ということで早速インストール。これでうまく行ってくれ!!

 

・・・

 

・・・・・・

 

・・・・・・・・・

 

 

monthly_rollup20.png

201801180552009d3.jpg

ということでさようなら。おやすみなさい。

 

 

 

 

ここ見て

DISM.exe /Online /Cleanup-image /Scanhealth

もやったよ。ダメだったよ。

DISM.exe /Online /Cleanup-image /Restorehealth

はWin8以降からしか対応してなかったからダメだったよ。

 

他のアップデートも80070002で死んだよ。

monthly_rollup24.png

Windows Update、もうめちゃくちゃ。

monthly_rollup25.png

諦めてWindowsを修復するか~。はークソ。

 

システム回復オプション

PC電源投入後すぐ、Windowsの起動ロゴが出る前にF8キーを押しっぱなしにすることで「詳細ブート オプション」が出る。

monthly_rollup26.png

「コンピューターの修復」を選択すると「システム回復オプション」が出る。

monthly_rollup27.png

今回関係ありそうなところ、

「システムの復元」→復元ポイントを作成していないから不可。

システム イメージの回復」を選択→事前にシステムイメージを作っておかないといけないから不可。

 

 

ゴミ

 

 

 

気を取り直して

再度

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

1287936.png

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を実行する。

monthly_rollup28.png

準備にしばらく時間がかかるが進めていくと、途中で「アップグレード」か「新規インストール」かを聞かれるので「アップグレード」を選択(これをインプレース アップグレードというらしい)。

しかしここでエディション変更をしようとしている、と認識されてエラーが。

monthly_rollup29.png

残念ながらAnytime Upgradeはもうサービス終了してるよ。

ということで「新規インストール」しか選びようがない。万策尽きて入れ直しパターンやん...。

 

 

 

201801180552009d3.jpg

ということでさようなら。おやすみなさい。

 

 

 

 

 

 

 

今度こそ本当に。

 

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も検証用ということであまり頻繁には更新しておらず、毎月しっかりマンスリーロールアップをインストールしていませんでした。

途中を抜かさずに一つずつ順番にインストールする、という作業が鍵になりそうですね。情報ありがとうございました!!

コメント(5)

ふぉっくす 返信

初めまして!
皆さん同じ事で苦労しているんですね。
特にPCに詳しければ詳しいほど気になりますし…!

で、コメントしたのは、私は下記の方法で何とかなったので、ご確認を!

https://qiita.com/kokawa2003/items/67efbccedde5911859fb

ファイルを他のPCから持って来なければいけないので、根本的に解決する方法ではないのですが…。

ななし 返信

はじめまして。
職場の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だったためか、何かファイルが足りなかったようです。
どなたかの助けになれば幸いです。

コメントする