Windows Update のエラー番号 KB947821 の解決方法
Windows Updateで起きていたKB947821のエラーが解決できたので、やった事をまとめました。
ざっくり説明すると「Windows Update用のカタログデータ破損してるので直してあげる」という解決方法ですが、コマンドプロンプト使ったり細かいファイル操作も多いです。
なので一定以上Windowsの操作が分かる人じゃ無いと(多分)対応できないんじゃないかと思います。
もし初心者を自負する場合やよく分からない、という方は修復インストールかマイクロソフトにサポート依頼か再セットアップした方が圧倒的に早いと思います。
作業手順
作業手順をまとめましたす。画面はWindows10になりますが、他のバージョンでしたら適宜読み替えてください。
ファイルチェック
- 「スタートメニュー」-「Windowsシステムツール」-「コマンドプロンプト」を右クリックして「その他」-「管理者として実行」を選択しコマンドプロンプトを起動します。
- コマンドプロンプトが起動したら、「 sfc /scannow 」と入力して実行します。
- システムスキャンを開始するので完了するまでしばらく待ちます。完了した時点で「修復完了」とか「問題なし」と表示されてばここで終了です。ですが「一部ファイルが修復できなかった」といった内容の表示でしたら復旧作業を行う必要がありますので次の手順に進みます。
ファイルのエラーが表示されたら
- 「一部ファイルが修復できなかった」といった内容の表示でしたら復旧作業を行う必要があります。他の所だとエラーを確認する事を説明している場合もありますが次のツールでエラーチェックするので飛ばしてもいいと思います。
- 実際にエラーを確認したい場合は「%Windir%\LOGS\CBS\CBS.log」を開いて下さい。行の真ん中辺りに[SR]と書いてあればそこでエラーが起きています。エラー行だけまとめて見たい場合はfindstrコマンドを使用すれば可能ですが、今回は使わないので詳細は検索して見てください。またCBS.logは管理者権限ないと開けませんのでご留意ください。
- マイクロソフトのサポートページにあるエラー番号KB947821の説明ページを表示します(下記のリンクです)。エラー番号は固定で大丈夫ですが、下は英語のリンクなので日本語が良ければ探して下さい。
【Fix Windows corruption errors by using the DISM or System Update Readiness tool】
https://support.microsoft.com/en-us/kb/947821/
- 使っているOSバージョンに適したmsuファイルをダウンロードします。
- ファイル名の一部にKB947821と書いてある、ダウンロードしたmsuファイルを実行します。
- 「%Windir%\Logs\CheckSUR.log」をメモ帳等で開きます。大体は「C:\WINDOWS\LOGS\CBS」にあります。
- 一番下の方にあるsummaryの辺りの文章を確認し、文末が.mumとか.catとか書いてある行があるかを確認します。もしあればそれが破損しているファイルの名前なので、真ん中辺りに記載されている「KB******」をメモ帳などに控えます。複数行ある場合はすべて控えてください。 また文末近くに「amd64(64bit版)」や「x86(32bit版)」と書いてある場合は持ってくるアップデータが異なるので注意が必要です。
例)「Windows6.0-KB958690-x64.msu」というファイル名なら「KB958690」を控えます。
例)「Package_for_KB958690~31bf3856ad364e35~amd64~~6.0.1.6.mum」と言うファイル名なら「KB958690」を控えます。
- エラー番号をマイクロソフトのサイトまたは下のWindowsUpdate Catalogのサイトで検索し、アップデータを確認します。確認したアップデータをダウンロードしますが、ダウンロードフォルダへ保存するよりも「C:\fix」等の先ほど作った「わかりやすい名前のフォルダ」に保存する方が後で楽です。
[Microsoft WindowsUpdate Catalog]
https://www.catalog.update.microsoft.com/Home.aspx
- 保存したフォルダ内にエラー番号でサブフォルダを作ります。「C:\fix」なら「C:\fix¥958690」と言った形です。
- ダウンロードしたファイルをコマンドプロンプトから展開します。「C:\fix」に「Windows6.0-KB958690-x64.msu」を保存した場合は
cd c:\fix
expand c:\Windows6.0-KB958690-x64.msu /f:* c:\fix\958690
で「C:\fix¥958690」に全部展開されます。 - もし必要なファイルが「Package_for_KB958690~31bf3856ad364e35~amd64~~6.0.1.6.mum」等の名前であれば解凍した中にあるWindows6.0-KB958690-x64.cabを再度解凍する必要がありますので、再度expandコマンドで展開します。
- 展開したファイルの内、同じファイル名で拡張子がmumとcatと異なる2つのファイルを「%Windir%\Temp\CheckSUR\servicing\packages」にコピーします(上書きして大丈夫です)。コピー先は大体が「C:\WINDOWS¥Temp\CheckSUR\servicing\packages」になりますが、(無いと思うけど万が一)フォルダがない場合は作成する必要があります。またmumとcatのファイルは必ず一緒に動かす必要があるので、両方セットでコピーしてください。
- 解凍したファイルの内、拡張子がmanifestのファイルは「%Windir%\Temp\CheckSUR\winsxs\Manifests」にコピーしてください。こちらも上書きして大丈夫です。大体は「C:\WINDOWS¥Temp\CheckSUR\winsxs\Manifests」になりますが、もしフォルダがない場合は作成する必要があります。
- 「%Windir%\Logs\CheckSUR.log」で確認したエラーになっている番号すべてでこの「ダウンロードして展開後にコピー」の操作を繰り返します。
- 全部処理が終わったらもう一度「 sfc /scannow 」 を実行します。
- 完了したらもう一度CheckSUR.logを確認してエラーが出てなかったら修正完了です。
以上で修正は完了です。お疲れ様でした。
もしこれでエラーが出た場合はエラーが出なくなるまで「ダウンロードして展開後にコピー」の操作を行ってください。
参照先
今回の参照先です。
機械翻訳と照らし合わせつつ、原文の英語の方を読んだ方が分かりやすいかもしれません。
【Advanced guidelines for diagnosing and fixing servicing corruption】https://technet.microsoft.com/ja-jp/library/ee619779(WS.10).aspx(リンク先無くなってました。マイクロソフトのサイトはすぐURL変わって説明に使うのは向いてませんね。しかも見つからないとは。)
マニュアル的な説明書きなので、英語のニュースサイトよりも読みやすいと思うのですがどうでしょう?
もう1カ所。こちらの方が説明丁寧です。
【milの雑記屋本舗 – Windowsの機能の有効化または無効化が表示されないトラブルを解決】
http://extrecnote.blog35.fc2.com/blog-date-201405.html
おわりに
この修正が完了すればWindows Updateを行ってもエラーは出なくなっているはずです。
また操作でダウンロードや展開、コピー元として利用したファイルやフォルダは終わったら削除しても問題ありません。
一応Windows Updateでトラブルが多くなる理由が仕組みにあったので、「Windows10 Windows Updateの仕組みについてまとめてみました」でまとめてみました。
もっとシンプルでいいんだけどなぁ。WIndows95からどうしてここまで肥大化しちゃったんだろう。