2014年10月22日(水) 09時52分40秒 [ソフトウェア ]
Windows Updateから「不明なエラーが発生しました」と報告されて、アップデートをダウンロードできなかったりインストールに失敗する場合の対処法を書いておきます。
私が遭遇したのは、新規にWindows7をセットアップした後、大量のアップデートを一括適用しようとしたときです。いつまで経ってもアップデートのダウンロードが始まらなかったり、ダウンロードできてもインストールに失敗する現象が続きました。が、以下で説明する『Windows Updateが保存する一時ファイルを削除する方法』で、100%状態が改善しました。(もっとも、大量のアップデートがすべてなくなるまでの間、何度か再遭遇はしましたけども。)
今回、Windows Updateで表示されたエラーは、以下の3種類でした。参考までに、エラーコードとキャプチャ画面を掲載しておきます。
どの場合も、同じように一時ファイルを削除する方法(後述)で解決しました。
コード80072EFE Windows Updateで不明なエラーが発生しました。
このケースでは、アップデートそのものが検索できない場合と、アップデートのダウンロードはできたもののインストールに失敗した場合の2通りがありました。このエラーコードをヘルプで調べてみると、コード80072EFE は「Windows Updateサーバが混雑しているか落ちている」場合だと説明されています。
でも、私がこのトラブルに遭遇したとき、他のPCでは正常に動作していたので、本当にサーバが落ちているわけではなさそうでした。(特に大きなアップデートがあった直後というわけでもありませんでしたし。)
コード80070003 Windows Updateで不明なエラーが発生しました。
このケースでは、ダウンロードしたアップデートの内、多くのインストールには成功したものの、一部だけ失敗していました。(私の場合は、170くらいのアップデートを一括適用しようとして、3~40くらいのアップデート適用に失敗していました。)
このエラーコードをヘルプで調べてみると、80070003 の場合は、そのものずばり「更新プログラム一時ファイルを削除」する必要があると表示されます。なぜそうなるのかについては書かれていませんが。^^;
コード8024200D Windows Updateで不明なエラーが発生しました。
このケースでも、先ほどと同様に、一部のアップデートのみのインストールに失敗しました。このエラーコードをヘルプで調べてみると、あまり意味のある内容は得られませんでした。コード8024200D が出た場合は、ダウンロードかインストールが完了していない可能性がある、と説明されているだけです。(それはヘルプで言われるまでもなく、Windows Updateの画面を見れば分かります。^^;;;)
以上が、今回遭遇したエラーです。
これらの3種類とも、同様に以下の手順(一時ファイルを削除する方法)で解決できました。
Windows Updateの一時ファイルを一括削除する方法
Windows Updateがローカルに保存する一時ファイルを削除するには、以下のステップで操作します。基本的にはファイルを削除すれば良いだけですが、削除作業を行っている間だけ、一時的にWindows Updateのサービスを停止させる必要があります。
なお、一時ファイルをすべて削除すると、Windows Updateの画面上からは過去の履歴を参照できなくなります。しかし、あくまでも「Windows Updateの画面上」から参照できなくなるだけであって、コントロールパネルの「インストールされた更新プログラム」画面を表示させれば、すべての適用済みアップデートが確認できます(インストール日も問題なく表示されます)。つまり、同じアップデートを再度適用してしまうようなことにはなりません 。安心して全削除して大丈夫です。
■Step 1. Windows Updateサービスを一時停止する
まず最初に、 Windows Updateサービスを一時的に止める必要があります。
Windows Updateのサービスを停止する方法はいくつかあります。
◆マウス操作だけで停止する方法:
すべてマウス操作だけで実行したければ、「コントロールパネル」→「システムとセキュリティ」→「管理ツール」→「サービス」でサービス一覧を表示させ、そこから「Windows Update」項目を探してダブルクリックし、出てきたウインドウで「停止」ボタンを押すだけです。
◆コマンドを打って停止する方法:
私の場合は、コマンドを打つ操作の方が何かと楽だったので、コマンドプロンプトを使って以下の操作で実行しました。
(1) コマンドプロンプトを管理者モードで起動する
コマンドプロンプトは、必ず管理者モードで起動する必要があります。スタートメニューからそのままクリックせず、右クリックして「管理者として実行」をクリックして起動します。
(2) 以下のコマンドを入力します。
net stop wuauserv
すると、下図のように表示され、Windows Updateのサービスは停止します。
■Step 2. 2つのフォルダにある一時ファイルを全削除する
Windows Updateがローカルに保存する一時ファイルは、以下の2つのフォルダにあります。
(a) C:\Windows\SoftwareDistribution\Download
(b) C:\Windows\SoftwareDistribution\DataStore
この2フォルダの中身をすべて削除します。
(a)のDownloadフォルダの中には、32~40桁程度のランダムな文字列からなるファイルやらフォルダやらがたくさん格納されています。これらを全部選択して削除します。
(b)のDataStoreフォルダの中には、データベースファイルと、Logsフォルダなどがあります。これらもすべて削除します。
私の場合は、最初のトラブル遭遇時には「利用中のファイルは削除できません」のようなエラーが表示されて、完全には削除できませんでした。そのときは、一旦Windowsをセーフモードで起動してから、当該ファイルを削除して、Windowsを再起動しました。(単にWindowsを再起動しただけでは削除できなかったので、セーフモードから削除しました。)1度遭遇して以後は、同様の問題には遭遇しておらず、すべての一時ファイルを(通常起動した)Windows上から削除できています。
■Step 3. Windows Updateサービスを再開する
一時ファイルを削除できたら、Windows Updateのサービスを再開させます。方法は、Step.1と同じです。
マウス操作の場合は、Step.1と同じ画面で「開始」ボタンを押すだけです。
コマンドライン操作の場合は、以下のように打ちます。
net start wuauserv
すると、下図のように表示され、Windows Updateのサービスは再開します。(コマンドプロンプトは、管理者モードで起動しておく必要があるのを忘れずに。)
■Step 4. Windows Updateを再実行する
あとは、Windows Updateを再度実行するだけです。
スタートメニューから「Windows Update」を実行します。
これでWindows Updateが正常動作するように
私の場合は、エラーコード80072EFEのときも、80070003のときも、8024200Dのときも、この方法で解決できました。
どういう状況でこのエラーが発生してしまうのかハッキリとは分かりませんが、私の遭遇したケースでは、
大量のアップデートが存在する(ハズの)状況で、それらのアップデートを一括適用しようとしたとき
一度エラーが発生すると、何度Windows Updateを実行し直しても、PCを再起動させても、同じエラーが発生し続ける
という感じでした。
そして、上記のStep.1~4を実施することで、毎回解決できました。
Windows7のセットアップ(SP1非適用の初期DVDからのセットアップ)完了後に大量にアップデートを適用し終わった後は、同様の問題は発生していないように見えます。
なので、リリースされたアップデートをちょっとずつ適用する分には、この問題は起こらないのかな……? と、なんとなく思っています。