Windows Update が file スキームの pac を無視する
Monday, 29. January 2007, 16:04:07
今の勤務地にきてから Windows Update ができなくなっていた・・・というのが11月の月例アップデートの時期に発覚してました。「更新を確認しています」画面で "0x80072EE2" エラーが発生するのです。再現率 100%。
エラー番号で検索すると、KB(Windows Update でエラー番号 0x80072EE2 が表示される場合の対処方法)が見つかりましたが、ここにかいてある対処方法が無茶苦茶だったりします。プロキシ相手に HTTP/1.1 をしゃべらせたり、プロキシ無視にしたり、挙げ句の果てにファイアウォールのせいにする。Windows Update のサイトが見えている時点で、いずれも対応策も的を外していませんか??
・・・どうせ外に出られないので、3ヶ月ほど放置していました。
最近、仕事に余裕が出てきたので本腰を入れて調査したところ、「更新を確認しています」画面の裏側で、Windows Update がダイレクト接続で https をしゃべろうとしていました。
今の勤務地では、常駐先の方からは、各自プロキシサーバのアドレス・ポートを入力するように指示されています。… 大量のプロキシ無視リスト付きで。面倒なので、自前で pac ファイルを作成し、IE・Opera・Firefox のプロキシ設定に file スキーム(file://~) で指定していました。これで、3つのブラウザが同じプロキシサーバとプロキシ無視リストを共有でき・・・Windows Update は無視してくれているようですが。
一旦、エラー番号 "0x80072EE2" をみなかったことにして、pac の設定が無視される現象として検索をしたところ、KB の(自動構成スクリプトの指定方法によって Windows Update が失敗する) を見つけました。Windows Update は Internet Explorer とは別の HTTP 実装(WinHTTP)を利用していて、WinHTTP では file スキームの pac を無視するんだとか。
自端末で Apache を稼働させていたので、pac を UserDir 配下に置いて、IE・Opera・Firefox のプロキシ設定に http スキームで指定しなおしました。Windows Update は見事に成功。3ヶ月分の更新を一気にインストールしました。
一方で Opera が pac 解析中に Syntax Error を起こしてしまう問題が発覚。pac は Shift_JIS で書いていて、Apache は Content-Type をつけずに pac を返していました。Opera はこれを UTF-8 と見なして解析していたようです。試しに、pac を UTF-8 で保存し直したところ、Opera は Syntax Error を起こさなくなりましたが、今度は IE と Firefox が Syntax Error。泣きそう。。。
Opera だけ file スキームで指定するのもいやだったので、ある意味で「正しい」対応をしました。Apache 側で「Content-Type: application/x-ns-proxy-autoconfig; charset=Shift_JIS」を出力するように、AddType と AddCharset を追加。これで Opera の Syntax Error も回避できました。ちゃんと charset パラメータを見てくれてるんですね。
エラー番号で検索すると、KB(Windows Update でエラー番号 0x80072EE2 が表示される場合の対処方法)が見つかりましたが、ここにかいてある対処方法が無茶苦茶だったりします。プロキシ相手に HTTP/1.1 をしゃべらせたり、プロキシ無視にしたり、挙げ句の果てにファイアウォールのせいにする。Windows Update のサイトが見えている時点で、いずれも対応策も的を外していませんか??
・・・どうせ外に出られないので、3ヶ月ほど放置していました。
最近、仕事に余裕が出てきたので本腰を入れて調査したところ、「更新を確認しています」画面の裏側で、Windows Update がダイレクト接続で https をしゃべろうとしていました。
今の勤務地では、常駐先の方からは、各自プロキシサーバのアドレス・ポートを入力するように指示されています。… 大量のプロキシ無視リスト付きで。面倒なので、自前で pac ファイルを作成し、IE・Opera・Firefox のプロキシ設定に file スキーム(file://~) で指定していました。これで、3つのブラウザが同じプロキシサーバとプロキシ無視リストを共有でき・・・Windows Update は無視してくれているようですが。
一旦、エラー番号 "0x80072EE2" をみなかったことにして、pac の設定が無視される現象として検索をしたところ、KB の(自動構成スクリプトの指定方法によって Windows Update が失敗する) を見つけました。Windows Update は Internet Explorer とは別の HTTP 実装(WinHTTP)を利用していて、WinHTTP では file スキームの pac を無視するんだとか。
自端末で Apache を稼働させていたので、pac を UserDir 配下に置いて、IE・Opera・Firefox のプロキシ設定に http スキームで指定しなおしました。Windows Update は見事に成功。3ヶ月分の更新を一気にインストールしました。
一方で Opera が pac 解析中に Syntax Error を起こしてしまう問題が発覚。pac は Shift_JIS で書いていて、Apache は Content-Type をつけずに pac を返していました。Opera はこれを UTF-8 と見なして解析していたようです。試しに、pac を UTF-8 で保存し直したところ、Opera は Syntax Error を起こさなくなりましたが、今度は IE と Firefox が Syntax Error。泣きそう。。。
Opera だけ file スキームで指定するのもいやだったので、ある意味で「正しい」対応をしました。Apache 側で「Content-Type: application/x-ns-proxy-autoconfig; charset=Shift_JIS」を出力するように、AddType と AddCharset を追加。これで Opera の Syntax Error も回避できました。ちゃんと charset パラメータを見てくれてるんですね。

