イントラネットのEdgeでIEモードの切り替えに15秒かかるとき

2019/6 追記

 本件ですが、最新版のEdgeでは問題なく、以下に書かれている対策は不要と思います。また記載しているようにデメリットもありますのでご注意ください。

以下本文

 EdgeをWindowsのデフォルトブラウザとして導入するにあたって、社内で利用しているJavaアプレットやfile://リンクなど、昔の機能を使うにはIEじゃないとだめだということがあります。そこはMicrosoft対策を用意してくれていて新しいChromium EdgeではエンタープライズモードとInternet Explorer統合のグループポリシーを設定することで所定のサイトは自動的にIEへ切り替えられます。
 もしくはすべてのイントラネットサイトをInternet Explorerに送る設定も可能ですが、それだと社内のページだけ見るのに使うブラウザとしてEdgeを導入する意味がないので、IEが必要なサーバだけエンタープライズモードでアクセス方法を指定して他の社内ページはEdgeで見るようにします。
 そのグループポリシーのInternet Explorer統合を構成するにおいて、Internet ExplorerモードとInternet Explorer 11の2種類が選択できるようになっています。使ってみたところ、Internet Explorerモードは、外側のウィンドウはEdgeですが中の描画等をIEでするモード。Internet Explorer 11は所定のサイトにアクセスしたときにIE 11を別に立ち上げて別ウィンドウとして表示するものみたいです。
 IE 11を別ウィンドウとして起動するモードですが、Javascriptのwindow.openでそのサイトのページを開く場合、まずEdgeの別ウィンドウ、そしてさらにIEの別ウィンドウになるのでEdgeのウィンドウが無駄に開いたままになります。これはEdgeのウィンドウ内でIEを表示するInternet Explorerモードの方で避けられるのですが、社内のPCで試したところInternet ExplorerモードだとEdgeからの切替時に15秒ほど待たされる現象がありました。IE 11を別ウィンドウで開けるモードでは、待ち時間なくすぐに表示されるんですが。
 Internet Explorerモードでは無駄なウィンドウは表示されないけれども切り替えに時間がかかり、Internet Explorer 11では切り替えは即時だけれども無駄なウィンドウが表示される。という状況でした。
 切り替えに時間がかかるのはなにかネットワークの応答待ちの時間だろうと推測してWiresharkでネットワークを観察したところ、ctldl.windowupdate.comへの接続が15秒かかっていました。実際の使用環境は社内LANのみですので応答なしで終わっているのですが。このサイト名で検索すると証明書信頼リストの確認サーバみたいで、どうせ接続できないので無効化するにはと調べるとこちらのページに行き着きました。
 デフォルトのタイムアウトが15秒になっていますので同じ秒数からこの設定が非常にあやしい。これもグリープポリシーで設定可能でしたので、このページにあるようにMicrosoftルート証明書プログラムで証明書を自動更新する(推奨)をオフにしたところ15秒待つのは変わらず、結局、この設定はオンにしたまま、規定のURL取得タイムアウトを最小の1秒にして、待ち時間がほとんどなしでEdgeからIEモードへの切り替えが可能になりました。
 社内LANのみの環境でInternet Explorerモードだと15秒待たされるのはなんとなくEdgeの不具合のような気がしますが、とりあえずこの方法で待ち時間が1秒になったのでしばらくこの設定で使ってみようと思います。

追記

 この設定にすると実際にインターネット接続が必要になったときに副作用がありました。
 Windows 10のライセンス認証するため、一時的にプロキシを設定したのですが認証に失敗します。この設定をなくすとうまくいったので特にMicrosoft関連のサイトへ接続するとき証明書の更新に時間が必要なのかもしれません。
 もう完全にインターネット接続しない状況になってから設定を有効にしたほうがいいようですね。

f:id:b3g:20200127172059p:plain

さらに追記

 この問題ですが、Edgeのバージョンが80.0.361.48になったのを機に証明書のポリシーをデフォルトのなにもしない設定に戻したところ、最初の接続時に15秒かかったものの、その後はすぐにIEモードで表示されました。再起動しても時間がかかることはなかったので、なにか動作が変わったのか、それとも最初からこういうものだったのか。
 証明書のタイムアウトを設定していると、他のところでデメリットがある感じでしたので、この設定は解除して運用しようと思います。