Windows Update が失敗してたので対処(会社にて。プロキシに関する設定の問題っぽい)
毛利です。
会社では1ヶ月に1回「セキュリティチェック」という名目で Windows Update やウィルススキャン(全ファイル)の結果を報告せよ、というのがある。
自動更新(10:00)にしてるけど念のため、ということで手動で Windows Update してみたら、なぜか更新対象がわんさか出てきた(笑)
恐らく以下の要因。
- あるパッチで何らかのエラーが発生していて、それ以降が入ってない
- 最近「Visual C++ 2005 Express Edition」「Office 2007」をインストールしたのでそれ絡み…?
ちなみに会社のPCは Windows XP Professional(32bit)。
まず、手動で Windows Update
24個のうち、5個がエラー。うーん、なんで?
エラーとなったパッチを手動でインストール(恐らく後述の手順をやれば不要)
しょうがないので、KBXXXXXXX などでググって出てきたパッチを手動ダウンロードでインストール。
- WindowsXP-KB2618451-x86-JPN.exe
- office2007-kb967642-fullfile-x86-glb.exe
- office2007sp3-kb2526086-fullfile-ja-jp.exe
- WindowsXP-KB2736233-x86-JPN.exe
- SQLServer2005SP4-KB2463332-x86-JPN.exe
しかしながら、最後の「SQLServer2005SP4-KB2463332-x86-JPN.exe」については、うまくいかない。
実行して特にエラーなく終了するのだけど、念の為に Windows Update をやってみるとまた出てくる。
手動実行後だから、もう一度 Windows Update から実行するとうまくいくかな?と思って実行するもダメ。
なんでやーとなってエラーコードを確認。
ちなみに最初に確認しなかったのは、エラーコードの確認の仕方を知らなかったため。。
(後述の手順の、赤の×印ではなく左側のリンクの方をクリックしてた)
パッチの番号でググれば分かるだろと思って調べなかった。
手動インストールしてもダメな子のエラーコードを確認
Windows Update で更新プログラムのインストールが失敗した場合にエラー コードを確認する方法
リンクではなく赤の×印をクリックするのがミソ。
Windows Update で更新プログラムのインストールが失敗した場合にエラー コードを確認する方法
- Windows XP の ActiveX Killbits に対する累積的なセキュリティ更新プログラム (KB2618451)
- 0x8024402C
- 2007 Microsoft Office system 更新プログラム: KB967642
- 0x8024402C
- 2007 Microsoft Office スイート Service Pack 3 (SP3)
- 0x8024402C
- Windows XP の ActiveX Killbits に対する更新プログラム ロールアップ (KB2736233)
- 0x8024402C
- Microsoft SQL Server 2005 Express Edition Service Pack 4 (KB2463332)
- 0x8024402C
全部エラーコード"0x8024402C"で失敗。"0x8024402C"でググるといくつか見つかる。
原因は5つとも同じなのに、4つは個別のパッチでOKで、1つだけエラー。やっぱりよく分からない。
ググって出てきた手順を試して3つ目がヒット
こんな感じでした。
regsvr32 wups.dll, regsvr32 wuaueng.dll
Windows Update でエラー番号 0x80070424 が表示される場合の対処方法
効かない。。。(ていうか見直したら "0x80070424" の対処だし!)
proxycfg -d
Windows Update Web サイトまたは Microsoft Update Web サイトで更新プログラムをインストールするときにエラー コード 0x8024402C が表示される
効かない。。。
proxycfg -u
1.DOSプロンプトから「proxycfg -u」と実行※
2.再起動
3.再度Windows Update
効いた!!
(OS再起動はせず、net (stop|start) wuauserv で対処)
C:\Documents and Settings\[username]>proxycfg
Microsoft (R) WinHTTP Default Proxy Configuration Tool
Copyright (C) Microsoft Corporation. All rights reserved.現在の WinHTTP プロキシ設定:
HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\
WinHttpSettings :直接アクセス (プロキシ サーバーなし)
C:\Documents and Settings\[username]>proxycfg -u
Microsoft (R) WinHTTP Default Proxy Configuration Tool
Copyright (C) Microsoft Corporation. All rights reserved.更新されたプロキシ設定
現在の WinHTTP プロキシ設定:
HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\
WinHttpSettings :プロキシ サーバー: ***-proxy.gw.nic.**********.com:8080
バイパス一覧 : *.local;172.*;192.168.*C:\Documents and Settings\[username]>net stop wuauserv
Automatic Updates サービスを停止中です.
Automatic Updates サービスは正常に停止されました。
C:\Documents and Settings\[username]>net start wuauserv
Automatic Updates サービスを開始します.
Automatic Updates サービスは正常に開始されました。
※プロキシサーバーの部分は伏せてます
で、Window Update を再実行でうまくいった。
参考
Windows Update (0x80072EFD, 0x8024402C, 0x80240030, 0x8024502d) - よそ行き顔で
Windows Update で失敗 − System Insider − @IT
簡単にまとめると、
・以前のWindows Update(と自動更新)はWininetを使用する
・現在のWindows Updateと自動更新はWinhttpを使用する
と、使用しているAPIに違いがある。で、Microsoft的には、自動更新のようなサービスとして動作するインターネットアプリケーションはWininetでは無くWinhttpを使うよう推奨している
なるほど…な感じだけど、改悪のような気はする。
「Winhttpを使うよう推奨」は何らかの理由があるんだろうけど、それがダメならWininetでトライする、とか出来なかったのかなぁ。
いじょ。