Windows Update(WU)やMicrosoft Update(MU)において、エラーが発生して修正プログラムの検出・適用ができないことがある。その原因の1つとして、WU/MUが利用する%SystemRoot%\SoftwareDistributionフォルダのファイル破損が挙げられる。このフォルダを修復するには、フォルダ名を変更してからWU/MU用のサービスを再起動する。
対象OS:Windows 2000/Windows XP/Windows Server 2003/Windows Vista
マイクロソフトが提供するWindows Update(WU)やMicrosoft Update(MU)は、Windows OSや同社製アプリケーションに修正プログラムを適用するには非常に便利なサービスである。自動更新も含めると、多くのWindowsユーザーが利用しているだろう。
しかし、特に原因として思い当たることはないのに、突如としてWU/MUがエラーを発するようになって修正プログラムの検出や適用ができなくなることがある。具体的にはWU/MUで修正プログラムの検出を指示しても、8桁の16進数のエラーを表示して止まってしまうのだ。マイクロソフトのサポート・オンラインにある「Windows Update総合情報」には、いくつかのエラーコードとその対処方法を記したサポート技術情報へのリンクが掲載されている。このほかにも関連するサポート技術情報があるので、本稿の最後に記した「関連リンク」も参照していただきたい。
各サポート技術情報を参照して分かったのは、WU/MUがエラーを発する原因として「SoftwareDistributionフォルダの破損」がよく挙げられていることだ。%SystemRoot%にあるこのフォルダには、ダウンロードされた修正プログラムのパッケージ(展開されている場合もある)や適用履歴のデータベース、実行時のログファイルなど、WU/MUにとって重要なデータが集積されている。何らかのトラブルによってこのフォルダに格納されたファイルが破損すると、WU/MUの動作に支障をきたしてエラーとなるわけだ。
なぜSoftwareDistributionフォルダが破損するのか、その原因は前述のサポート技術情報でも明らかにされておらず、いささか心許ない。しかし、とにかくこのフォルダの破損を修復すればWU/MUのエラーを解消できる可能性がある。もし解消できなくても、エラーの原因をSoftwareDistributionフォルダ以外に絞り込むことができる。このフォルダの修復方法はそれほど難しくはないので、憶えておくとエラーの迅速な解決の一助となるだろう。
本稿で説明する手順でSoftwareDistributionフォルダを修復すると、WU/MU/自動更新で適用した過去の修正プログラムの履歴が消えてしまう(修正プログラムそのものがアンインストールされるわけではない)。必要であれば、WU/MUの[オプション]−[更新履歴の表示]を実行し、表示された適用履歴を保存しておく。ただし、この適用履歴を保存したデータベースが破損していると履歴が表示できない可能性もある。それこそエラーの原因だと考えられるので、その場合は適用履歴の保存はあきらめるしかない。
■手順1――WU/MU関連のサービスを停止する
まず、管理者としてWindows OSにログオンし、自動更新とBITS(Background Intelligent Transfer Service)というサービスをそれぞれ停止する。これらのサービスが起動したままだと、%SystemRoot%\SoftwareDistributionフォルダにあるファイルがロックされてしまい、後述するリネームの操作ができない。なお、BITSはWU/MU以外のアプリケーションから利用されることもあるので、修復中はほかの作業を止めておいた方がよいだろう。
GUIから操作するにはコントロール・パネルの[管理ツール]−[サービス]を起動し、以下の名前のサービスを選択して[サービスの停止]ボタンをクリックする。
なお、[スタートアップの種類]は[自動]のまま変更しないように注意すること。[手動][無効]に変えるとWU/MUの実行に失敗してしまう。
コマンド・プロンプトから停止させるには以下のように実行する。
net stop wuauserv
net stop bits
なお、UAC(ユーザー・アカウント制御)が有効なWindows Vistaで上記のコマンドを実行するには、コマンド・プロンプトのアイコンを右クリックして[管理者として実行]を選択する必要がある。以下の手順2/3についても同様だ。
■手順2――SoftwareDistributionフォルダのリネーム
次にWindowsエクスプローラで、%SystemRoot%\SoftwareDistributionフォルダの名前を「SoftwareDistribution.old」などに変更する。コマンド・プロンプトの場合は、以下のように実行すればよい。
ren %SystemRoot%\SoftwareDistribution SoftwareDistribution.old
このとき、「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」といったエラーが発生してリネームに失敗する場合は、何らかのプログラムがSoftwareDistributionフォルダのファイルをロックしていることを意味する。前述の自動更新とBITSのサービスを技術情報停止してもこのエラーが発生する場合は、Windowsをセーフモードで再起動してからこのフォルダのリネームを試してほしい。セーフモードで起動するには、Windowsの再起動時に[F8]キーを押して表示される起動メニューから[セーフモード]を選ぶ。
■手順3――WU/MU関連のサービスを再開する
SoftwareDistributionフォルダをリネームできたら、自動更新とBITSのサービスを開始する。それには手順1にて、ツール・バーの(4)[サービスの開始]ボタンをクリックすればよい。コマンド・プロンプトの場合は以下のとおりだ。
net start bits
net start wuauserv
なお、セーフモードでSoftwareDistributionフォルダをリネームした場合は、通常モードでWindowsを起動し直せば、自動的にこれらのサービスは開始されるので上記の操作は不要である。
これらのサービスを開始すると、自動的にSoftwareDistributionフォルダの再構築が始まる。そのため、サービスが完全に起動し終わるのに若干時間がかかることがある。また、自動的に修正プログラムの検出が始まることでシステムの動作が若干重くなる可能性もあるので注意してほしい。
後はWUあるいはMUを起動して修正プログラムの検出を指示し、エラー無しで正常に完了することを確認する。
■関連リンク
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.