November 14 Wed, 2012
Windows 7 64bit 版で Windows Update が終了しない問題を解決した
Posted by yoosee on Gadget at 2012-11-15 09:37 JST1 Windows 7 64bit 版で Windows Update が終了しない問題
数週間前から Windows Update が走りっぱなしで電源を入れたまま丸一日以上放置しても終了せず、当然ながら更新を導入できないのみならず CPU を常時 13% 程度食いつぶしてくれたおかげで動作はともかくバッテリーが持たなくなって大変参っていたのだが、これを直すのに結構苦戦したので備忘録として記載しておく。症状としては
- Windows Update で Check Online Update をクリックして更新の確認が走りだしてから24時間以上放置しても終了しない
- 更新の確認が明に動いていない時も自動更新が常時 CPU を 13% (1コア) 程度消費し続ける。より詳しくは特定の svchost が CPU を常時消費、そこから Go to Service(s) で Services を見ると複数の利用サービスのうち wuauserv (Windows Update) を Stop Service した際に CPU 消費が止まるので、これが原因であるとは特定できる。
1. Clean boot
まずは定石として MS 以外のサービスを止めて様子を見る。[Win] + R でプロンプトを出して msconfig を実行。
msconfig → Services → Hide all Microsoft services → Disable all
を実行。これで Microsoft 以外のサービスは全て無効化されるので再起動し、その後に Windows Update を実行。しかし効果なし。
2. Microsoft の Fixit を適用
Microsoft support KB の How do I reset Windows Update components? に行くと自動的に Fixit のダイアログがポップアップするので Run now をkクリック。ダウンロードされたツールを実行し、利用許諾を Accept し、自動修復を選択する。この実行完了時点で "Repair Windows Update components" が Fixed というステータスで表示された。しかし実際にこの後に Windows Update を実行しても全く同じ状態になる。 更に Fixed が表示された後に再度 Fixit を実行しても、再度 Component が Repair されたというメッセージが表示される。つまりは問題はあるが修正が完了しない状態なのだろうか。
3. Windows Update standalone installer KB947821
色々と調べると System Update Readiness Tool - KB947821 というものがあるらしいので実行するが、通常の Update 同様に延々と終了しない状態に陥る。
4. System File Checker tool
2 で Windows Update component に問題があるようなメッセージになっているので、念のため System File Checker tool を実行。コマンドプロンプトから
sfc /scannow
を実行。スキャンには数分間かかるが、どうやら幾つかのファイルが Fix をうけたようだ。数日前に再インストールしたばかりなのになんで壊れてるんや…。しかしこの後も Windows Update の実行は状況変わらず。ただこの実行後に再起動し、2 のツールを再度実行すると今回は KB947821 がインストールされた。これで直ったかと思ったがそれはしかし甘かったようで同じ状況が再現。
5. Microsoft Fixit tool 50202
しかたがないので更に調べてみると、MicrosoftFixit50202.msi というツールが Windows Uupdate をほぼ再インストールするようなアクションが取れるっぽい。ただこのツールは今はMSのサイトから探しても見つからなくて、多分新しい Fixit で置き換えられたのかなと思う。探せばその辺に MS 署名付きのアプリが落ちているので使えないことはないが、これで更にトラブルになったという話も見かける。
今回は直らなかったらまた再インストールからやり直すしかないと思っていたのでなんにせよ使ってみる。Run aggressive options という選択肢もあったが初回はチェックせずに実行。コンポーネントの上書きがされたのか、結果的にはこれで問題は解決し、Windows Update を再度実行するときちんと Scan が終了して必要な更新が表示されてくれた。やれやれ。