Windows Update が実行できなくなる現象を修正する

概要

※ここで紹介している内容は確実な動作を保証しているものではありませんので、自己責任の範囲で行ってください。

Windows を何年も起動してなかったり、Windows を復元したりして環境が古い状態になっていると Windows Update が正常に実行できなくなる場合があります。また、Hyper-V のゲスト環境でもチェックポイントから復元したりすると発生する場合があります。

ここではその現象の紹介と、Windows Update の修復方法について説明します。

動作環境

Windows
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows Server 2003
  • Windows Server 2003 R2
  • Windows Server 2008
  • Windows Server 2008 R2

動作確認環境

Windows
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows Server 2003
  • Windows Server 2003 R2
  • Windows Server 2008
  • Windows Server 2008 R2

内容

現象

Windows XP, Windows Server 2003, Windows Server 2003 R2

上記の OS では専用の Windows Update の画面はなく、Web ブラウザを通して Microsoft のサイトにアクセスし、Windows Update を行います。

「スタートメニュー」から「Windows Update」または「Microsoft Update」を実行すると Internet Explorer が開いて Windows Update のページが開きますが、サイトのページがなんどもリフレッシュするような現象に見舞われます。

アドレスバーを見てみると画面がリフレッシュされるたびにアドレスが

  • http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ja
  • http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ja&muopt=1
  • http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ja&muopt=1&muopt=1
  • http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ja&muopt=1&muopt=1&muopt=1
  • http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ja&muopt=1&muopt=1&muopt=1&muopt=1

というように「&muopt=1」というパラメータが付加されながら無限ループに陥っていることが分かります。ちなみにここから先へはどうやっても進めません。

Windows Vista, Windows 7, Windows Server 2008, Windows Server 2008 R2

上記 OS では Windows Update を実行すると専用の画面が表示されます。正常な場合はそのまま Windows Update を行えますが、環境が古いと図のような表示になっている場合があります。

「更新プログラムの確認」ボタンをクリックするとそのまま正常に進む場合がありますが、図のようなエラーが出る場合があります。この場合、メッセージの通りサービスを再起動させたり Windows を再起動させても解決しないことが多いです。

解決方法

ここでは Windows Server 2003 R2 の環境での手順を説明します。ほかの OS でも手順はほぼ同じです。Windows Update の画面は違いますが、基本的には画面に表示される流れに沿ってもらえれば問題ありません。

まず最初に「Administrators」グループの権限を持つユーザーでログインします。

テキストエディタを開き、以下の内容を入力して拡張子「.bat」ファイルで保存します。ファイル名はなんでもかまいません。

net stop wuauserv
cd %systemroot%
rd /s /q SoftwareDistributionold
ren SoftwareDistribution SoftwareDistributionold
net start wuauserv
net stop bits
net start bits
net stop cryptsvc
cd %systemroot%\system32
rd /s /q catroot2old
ren catroot2 catroot2old
net start cryptsvc

ファイルを保存したらファイルをダブルクリックして実行してください。Windows Vista, Windows 7 の場合はファイルを右クリックして「管理者として実行」を選択します。

コマンドプロンプトが開いたら自動的に閉じるまで待ちます。

完了したら Windows を再起動して下さい。再起動しなくても問題ない場合がありますが、再起動した方が確実です。

再起動が完了したら Windows Update を実行してみてください。図のように Windows Update 自体の更新をするように促されますので手順どおり進めます(画面の内容は環境によって異なる場合があります)。完了後 Windows Update を行えます。