Windows 7でWindows Updateがサービスとして実行できない場合の対処法。
職場で依頼があったPCをメンテナンスしていたところ、Windows Updateが実行できていないことが判明。すぐに解決できなかったので備忘録的に対応を記録してみました。
Windows UpdateはPCの起動時にサービスとして強制的にバックグラウンドで起動するものなので、手動で起動させるものではないのですが、通常通りコントロールパネルからWindows Updateを確認しようとしても、「サービスが実行されていないため、Windows Updateで更新プログラムを確認できません。」といったエラーダイアログが出て実行できない状態です。
当然手動でサービスの再起動を行っても、PC自体を再起動させても改善されませんでした。Windows UpdateのファイルをいくつかMicrosoftのサイトからダウンロードさせて手動で適用しても改善されません。
これは困りました。
色々調べていると、Windows Updateの各種データがダウンロードされて一時的に格納されるフォルダがあり、このフォルダに不具合が出ている可能性があるとのこと。
そのフォルダは、「C:\Windows\System32\SoftwareDistribution」というフォルダのようです。このフォルダの中には、Windows Update時にダウンロードして一時保存するcabファイルや更新履歴などが保存されています。
以下のバッチファイルを作成し、管理者として実行してみました。「wuauserv」はWindows Updateのサービス、「bits」というサービスはバックグラウンド インテリジェント転送サービスというものです。このサービスを停止させてから、該当するフォルダ名をリネームさせて次回Windows Update実行時に再作成させるという処理になっています。
最後に再起動させているサービスは、Windows ファイルの署名を確認し、新しいプログラムをインストールできるようにするサービスですね。このサービスもWindows Updateに密接に関わっているのでリネーム後に再起動させておきます。
メモ帳などで以下のコマンドを入力して、ファイル名を「任意のファイル名.bat」で保存することでバッチファイルが作成できます。
net stop wuauserv |
実行後、通常通りWindowsの再起動を行います。
再起動後、Windows Updateを実行すると問題なく確認処理が行われるようになりました。
調べてみた結果、対応できて改善までできたので良かったのですが、この現象が発生するそもそもの原因についてはわからずじまいでした。長期間Windows Updateを実行していなかったことも原因の1つなのかもしれませんが。
また、この対処方はMicrosoft側で推奨されたものではなく、システム領域を手動で変更したりしていますので、自己責任で行ってください。