Windows Update (0x80072EFD, 0x8024402C, 0x80240030, 0x8024502d)
検索エンジンでWindows Updateのエラーを検索して飛んで来られた方へ 対象となるPCがインターネットに接続するためにproxyサーバを 必要としていて、通常のwebアクセスはできるのにWindows Updateが いつも失敗するとしたら、DOS窓(コマンドプロンプト)を開いて、 "proxycfg"と実行してみてください。その結果、proxyサーバの情報が 何も表示されなければ、同じDOS窓でproxycfg -uを実行し、その後 PCを再起動してみて下さい。それによりWindows Updateが行えるように なる可能性があります。何故Windows Updateだけが失敗するのか、またこの 操作が何を意味するのか、参考情報については、本ページのこの下を ご覧ください。 2005.1.10追加
何かのはずみに*1Windows Updateが失敗して、0x80072EFDというエラーが出るようになった。失敗した画面からナレッジベースを検索することができる。そこで0x80072EFDに対する情報を探すと、kb 875273というナレッジが見つかり「Windows Update関連のURLをInternet Explorerの『信頼済み』ゾーンに登録するように」という指示があったがこれでは解決しなかった。色々探すとキャッシュや一時ファイルを削除する、アンチウィルスのプログラムを停止するなど書いてありやってみたが変わらない。レジストリを修正するというのもあったが、結構一般的なエラーのようなのでそこまでしないでも直るだろうと思い実行しなかった。
結局http://v5.windowsupdate.microsoft.com/v5consumer/showarticle.aspx?articleid=26&ln=en (どこからたどれるのかリンクを調べてみたがわからなかった)とhttp://bbs.hotfix.jp/ShowPost.aspx?PostID=835#835を参考に以下で解決した。
(以下をDOS窓で実行する) proxycfg -d net stop wuauserv net start wuauserv
どうやらWindows Updateのproxy設定は、ユーザ毎のproxy設定と独立に管理されているらしい。proxycfg -dはproxy情報の削除なので、proxyなしで接続できる状況であればこれでWindows Updateが有効となるはず。もしproxy経由でないと接続できない状況であれば、proxycfg -u (update)で「そのときのInternet Explorerのproxy設定」をUpdate用のproxy設定にコピーしてくれる、あるいは陽にproxycfg -pでUpdate用のproxyを定義できる。proxycfgの説明についてはhttp://www.ace.comp.nec.co.jp/serverwall/technical.htmlが詳しかった。proxycfgはレジストリのデータの書き換えを行うが、Windows Updateの仕組みは随時proxyの設定の内容を参照しないため、書き換えた内容を反映するためには、Windowsを再起動するか、Windows Updateのプログラムを再起動する必要がある。上記でnet stop, net startはそれぞれWindows Updateのサービスの停止と開始にあたり、これを行えば時間のかかるWindowsの再起動を行わなくても良い。
新しいWindows Updateでは初期登録時には(Updateの)proxy設定が空になっていると書いてある記事があった。とすると会社のネットワークに接続されたPC等はWindows Updateのバージョンがv5にあがってしまうと、一度proxycfg -u、あるいは直接proxy -p サーバ名:ポート名の登録をしないとWindows Updateが動かないことになる。また、複数のネットワーク環境を利用している場合は、IPアドレス同様proxyサーバの有無や内容を変更するようなツール(IBMであればAccess Connection)を使うのが一般的だが、そのようなツールではWindows Update用のproxyまで変更してくれないから、その都度切り替えないといけない。つまり、
- (1) 社内ネットワークに接続したPC(恒常的にproxyを使うPC)
- proxycfg -uかproxycfg -p <サーバのホスト名かIPアドレス>:<プロキシポート番号>を一度実行する。(proxyサーバやアクセスのためのアカウント、パスワードが変更になったら再度実行しなければならない)
- (2) 直接internetに接続しているPC(Air H"や個人用PC)
- proxycfgを引数なしで実行して、Windows Update用(自動更新用)のproxyが登録されていたらproxycfg -dでその内容を一度クリアする。
- (3) モバイル兼用PC(ネットワーク環境を切り替えるPC)
- Windows Updateを実行する都度、あるいはWindows Updateでエラーが出たらproxycfg -uを実行する。
とすると良く、Windows Updateを実行するときのネットワーク接続状態を意識しなければいけない。今までこのような使い分けが不要だったのは、Windows Update ver4までは、Windows Updateサーバ接続用のproxy情報(自動設定プロキシ)とIngternet Exploerer接続用のproxy情報(手動設定プロキシ)が独立に管理されておらず兼用だったからだ。
2004.12.13追加
マイクロソフトから12/7付でナレッジベース888859、[WU] Windows Update version 5 で利用するプロキシについてが追加されている。内容はやや不親切だし、「Windows Update version 5 の自動更新クライアントは、プロキシを独自に実装したことから、別途プロキシを設定する必要がある場合があります。」ということがわかっているなら、「Windows Updateのプロキシを独自に実装しないようにする」のが良いのではないかと思う。
2004.12.30追加
マイクロソフトに12/20付で0x80072EFDに関するナレッジベースkb 875273が更新されている。書かれている内容はおそらく見当違いだ。上の「12/13追加」で書いた888859のナレッジベースkb 888859が12/22付で更新されており本ページに記載した内容に近くなっている。日本語以外で検索するとわかるが0x80072EFDのエラーはWindows Update ver5以来かなり一般的となっているようだ。これが原因でフィックスを適用できていない人はどれだけ多くいるのだろうか。
2005.1.5追加
一部のサイトで0x80072EFDのエラーについてXp SP2が原因と書いたところがある。確かにSP2のFireWall機能によりUpdateが失敗する場合もあるだろうけれど、それはあくまでもひとつの場合でしかない。例えばFlet'sの接続プログラムや、アンチウィルスの設定によりHTTPの通信が影響を受けてUpdateできないという事象はあちこちに記載されている。「通常のWebブラウズはできるが、Windows Updateが失敗する」ときに、Windows Updateのproxy設定に原因がある可能性が高いということ、その場合の対処方を紹介したのが本ページのサマリーとなる。
2005.1.10追加
このページはコンスタントに各種検索エンジン(Yahoo!, Google, MSN等)からアクセスされているようなので、冒頭に「検索エンジンからこられた方へ」を追加し、またproxycfgの実行画面も上に移動した。検索エンジンの検索結果の上位を眺めると、意味のあるものとないものが混在しているが、Yahoo!についてはmoderateされている印象を受ける。Googleは関係ある情報が含まれているが、Microsoftの情報源が上位になっており、その分正解にたどりつきにくい。自分が調べ物をする場合にもGoogleだけ見るのは良くないと思った。2chはこの分野に対しても適切な情報が含まれている。
*1:今にして思えばWindows Updateがv5になって以降最初にWindows Updateを実行した時だろう。