kkamegawaの購入記録

漫画、小説、映画や買ったものの記録をつらつらしていきます。昔は一部技術情報もありました…

WSUSの管理画面を開くと仮想ディレクトリ/selfupdateがアクセスできないというエラーが出る

 WSUSをホストしているマシンの電源を落として、再起動したあと(実は電源OFF/ONは関係ありませんでした)、「仮想ディレクトリ/selfupdateへのアクセスができません」と言われるようになってしまいまい、大変困っていました。やっと解決したのでメモ。

どんな現象が起きる?

  • IISで80番をホストしている仮想ディレクトリ/selfupdate(WSUSを8530番でセットアップしていたとしても、/selfupdateだけは80番でアクセスできる必要があります)へのアクセスが500番のエラーとなる
  • よって、WSUSのクライアントの自動更新ができない
  • WSUSクライアントは「更新しています…」というアイコンをタスクトレイに出したままになる(一時的に消えますが、復活します)
  • IEhttp://servername/selfupdate/iuident.cabを直接参照しても、「パスが見つかりません」と言われる

やってみたこと

 googleでselfupdate、WSUSというキーワードで検索してみると、同様の事例がありました。そこでは
 仮想ディレクトリ/selfupdateの実パス(C:\Program Files\Update Services\Selfupdate)のNTFSセキュリティをeveryoneに対してread権限を与える。
 という方法が紹介されていたので私もread権限を与えてみましたが、解決には至らず。しかし、この方法で解決できる方もあるかもしれません。やってみてください。  また、私の場合、WSUSが8530番のポートを使用しているので(Windows Sharepoint Serviceと共存させる場合、8530を使用するみたいです)、http://servername:8530/selfupdateへリダイレクトできないかと思ったのですが、これも同様に「パスが見つかりません」というエラーが出ました。

解決編

 ディレクトリが見つからないというエラーが出ると言うことは、IISの途中でフックしているフィルタプログラム(ISAPIフィルタ)がいるためではないか?と思って確認してみました。  すると、確かにいます、JRun 4.0(Update 5)。もちろん自分で入れた物ですが、つい最近までうまく動いていなかったので、忘れていました。そういえば、JRunが正しく動き出してからうまくいかなくなったような記憶があります。うまく動かなかった理由がJRunフィルタの構成間違い。以前はディレクトリを間違えていて、正しくフィルタが読み込まれていなかったために、WSUSが問題なく動いていたのではないか?と考えました(実際JRun側では「フィルタが読み込まれていない」というエラーが出ていました)。  そこでJRunのフィルタを手動で削除(ほんとはちゃんとツールがあるので、それを使うこと。後述)して、IISを再起動してみると、/selfupdate配下がIEで参照できるようになりました。もちろんWSUSもエラーを出しません。めでたしめでたし。  というわけで、/selfupdateが参照できないというエラーが出た場合、IISのフィルタもチェックしましょう。ただし、ASP.NETのフィルタだけははずさないように。WSUS自身がASP.NETを使用しているので、削除するともっと痛い目を見ます。  なお、JRunはVirtual Serverで別環境を用意して解決しました。

おまけ

 「JRunのフィルタを手動で削除した」とありますが、これはもちろん間違いで、JRun4には「Webサーバ設定ツール」というものがプログラムグループに登録されています。これを使えば正しく、しかも簡単にJRunのフィルタをIISに登録/削除してくれます。JRunのアンインストールや、フィルタを手動で削除することはありません。知らなかったので、「えらい大変だな~」と思っていたのですよ。

さらにおまけ

 最初、同居しているWindows SharePoint Serviceがいけないのかと思って削除しちゃった(;-;)。まぁ、ほとんど入っていないからいいのですけど。