Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。
WebClientサービスをポリシーで止める
サーバー上にあるファイルをエクスプローラーで右クリックするとなんか遅い,20秒程度待たされる,という現象が発生しました。あるサーバーではOKだけど,あるサーバーでは発生します。原因は何なのかググってみると,WebClientが原因のようでした。
実は,以前に他の問題でWebClientが原因であると言うことがありました。ログオンに時間がかかるというものです。
Windows XP を実行するコンピュータでドメインにログオンするとき、またはネットワーク リソースに接続するときに、時間がかかる
そのときは,ドメインコントローラーにてIISをたてて,Port80へのアクセスにとりあえず返事をさせるという方法で解決をしました。WebClientがWebDAVでの接続を試みてもIISでPort80に対してすぐにレスポンスしてやればいい,という発想です。各クライアントのサービスを停止するのもなぁ,と思いましたので。
その後,我が職場のサーバーも数が増えて,別のサーバーではIISも立ち上げておらず,WebClientがPort80のタイムアウトを待ってから接続するため,いろんなサーバーの最初の接続が遅くなっていたわけです。これは何か根本的な対策が必要だと言うことになりました。
WebClientサービスをポリシーで止めることにしようとググってみると,「犯人はWebClientサービス?」というページが見つかりました。これです。全く同じ現象。こちらのサイトでは,ログオン スクリプトでサービスを停止するという方法をとっておられましたが,僕はポリシーでやってみることにしました。
Server 2003 にて設定
グループ ポリシー オブジェクト エディタ の左ペインのツリーで,
コンピュータの構成 > Windowsの設定 > セキュリティの設定 > システムサービス
を選択します。右ペインにサービス名がずらっと並びますので,WebClientをダブルクリックして,
「このポリシーの設定を定義する」にチェックを入れて「手動」を選択します。
これでドメインに参加している各クライアントに対してWebClientサービスを停止することができました。
追記:2008 Server の場合
同じことを,今度は2008 Serverがドメインコントローラーになっているドメインでやろうとしたところ,問題が発生しました。グループ ポリシー管理エディタの上記の場所にWebClientが存在しないのです。
これは2008 Server自体にWebClientサービスがないからなんだそうです。でもドメインのクライアントはほとんどがXpで,それらのWebClientサービスを停止したいのです。しかし一覧に存在しないことには,それを「無効」に設定することができません。どうしたものかと思っていたら次の記事を見つけました。
この中に
グループポリシーの作成はVistaで行い、確認をWindows Server 2008で行いました。
という記述がありました。クライアントでグループ ポリシー オブジェクト エディタを実行すれば,クライアントにあるサービスは表示されるということのようです。私のクライアント(OSはXp)にはWindows Server 2003のadminpakがインストール済みでしたので,ローカルにインストールされている「Active Directory ユーザーとコンピュータ」を起動し,対象のドメインに接続して,グループポリシーの編集まで行ってみると,そこにはWebClientポリシーが表示されています。表示されているのでとりあえずそれを無効に設定してみました。これで本当にポリシーが設定できたのでしょうか。もう一度サーバー上でサーバー マネージャを起動してポリシーを確認してみると,
ちゃんとWebClientの項目が追加され,「無効」になっています。