【IEモード】Windows10 HomeでEdgeのIEモードを有効にするbatコマンド

Tips
スポンサーリンク

今回の記事では、Windows 10 Homeの端末でEdgeのIEモードをWindowsのコマンドラインを使って有効にする方法を紹介していきます。
尚、記事のタイトルではWindows 10 Homeと銘打っていますが、Windows 11 HomeやWindows 7 Homeでも同様に動作します。

尚、Windows Proの端末でActive Directory導入環境であれば、グループポリシーを利用してIEモードを有効化したほうが管理しやすいため、以前に当ブログで紹介した以下の記事をご参照ください。

 

Windows HomeエディションのIEモードについて

冒頭で紹介した過去の記事でも記載していますが、Windows 10 Proであればグループポリシーが使用できるため、グループポリシーを使ってIEモードを有効化するのが一般的な実装方式です。
10だけではなく、Windows7やWindows11であっても同様です。

ただ、世の中には WindowsのHomeエディションでIEのサポート終了後もIE依存ウェブアプリケーションを使わないといけない状態に陥ってしまっている人も多くいると思います。
かくいう私も管理下の端末にはActive Directoryが導入されておらず、OSもHomeエディションという環境があり、HomeエディションでもIEモードの導入が必要になってしまいました。

今回の記事はその際の対応の覚書です。
 

エンタープライズモードサイト一覧

当記事では、EdgeでIEモードを使用して接続するURLを、「エンタープライズモードサイト一覧」と呼ばれるxml形式の書式で書かれた一覧表で制御する方式を想定しています。
この「エンタープライズモードサイト一覧」では、EdgeでIEモードを有効にする接続先ホスト名や、IEモードの種類、IE互換レベルなどを指定します。

この一覧では決められたフォーマットで登録する必要があり、「エンタープライズモードサイト一覧」の詳しい作成方法は過去に以下の記事で紹介しています。

一見すると難しく感じますが、一度作成してしまえば、それ以降はテキストエディタで直接開いて簡単にメンテナンスが可能です。
 

IEモードを有効にするレジストリ

HomeエディションでIEモードを有効にする場合はレジストリを直接更新します。

IEモードを有効にするために作成の必要なレジストリは三つあり、既定値では存在しません。
新しく作成する必要があります。

エンタープライズサイトリストマネージャーの有効化
ルートキー HKEY_LOCAL_MACHINE
サブキー SOFTWARE\Policies\Microsoft\Edge
値の名前 EnterpriseModeSiteListManagerAllowed
値種類 DWORD
1
IEモードの有効化
ルートキー HKEY_LOCAL_MACHINE
サブキー SOFTWARE\Policies\Microsoft\Edge
値の名前 InternetExplorerIntegrationLevel
値種類 DWORD
1
サイト一覧ファイルのパス指定
ルートキー HKEY_LOCAL_MACHINE
サブキー SOFTWARE\Policies\Microsoft\Edge
値の名前 InternetExplorerIntegrationSiteList
値種類 SZ
sites.xmlまでのパスやURL文字列

 
 

IEモードを有効にするレジストリを作成するコマンド

当項では、前述したレジストリをWindowsのコマンドプロンプトから作成、更新するコマンドを紹介します。

尚、Windowsのコマンドラインではレジストリを作成したり更新するのは REG ADD コマンドを使います。

参考までに、Microsoftの REG ADD コマンドに関するリファレンスのURLをリンクしておきます。

今回のレジストリを作成、更新するコマンドの場合は以下になります。

  reg add HKLM\SOFTWARE\Policies\Microsoft\Edge /v EnterpriseModeSiteListManagerAllowed /t REG_DWORD /d 1 /f
  reg add HKLM\SOFTWARE\Policies\Microsoft\Edge /v InternetExplorerIntegrationLevel /t REG_DWORD /d 1 /f
  reg add HKLM\SOFTWARE\Policies\Microsoft\Edge /v InternetExplorerIntegrationSiteList /t REG_SZ /d "https://example.com/iemode/sites.xml" /f

上記コマンドの三行目は、前述した「エンタープライズモードサイト一覧」の場所を指定します。
上記の例では、クライアントから参照可能なウェブサーバーの公開ディレクトリに、sites.xmlという名前の「エンタープライズモードサイト一覧」ファイルを配置してそれをウェブの通信で参照させています。

必ずウェブサーバーで公開する必要ななくて、共有フォルダのファイルパスを指定しても良いですし、クライアントのローカルディスクに「エンタープライズモードサイト一覧」ファイルを配布できるなら、クライアントのローカルディスクにある特定のフォルダを参照させることもできます。

ただ、できれば各クライアントのサイトリストを一元的に管理できた方が運用が楽になるため、ウェブサーバーの公開ディレクトリへの配置をおススメします。
 

batファイル化をする場合のポイント

IEモードを有効化する場合の対象となるレジストリはわかりましたが、ユーザーが個々にコマンドプロンプトを起動してこれらのコマンドを実行するのは現実的ではなく、企業内で各端末でIEモードを有効させる場合は、前述したレジストリを作成するコマンドをbatファイル化して、それをユーザーに実行してもらうことになります。

一番簡単なbatファイルは、前述した3行のコマンドを記述して、最後の行にEXITを追加しただけのbatです。

ただ、このbatファイルをユーザーに実行してもらう場合に、対象のbatファイルをダブルクリックしただけではエラーになります。
且つ一瞬でコマンドプロンプトが閉じるため、ユーザーは一瞬コマンドプロンプトが表示して実行できたように見えるが、実際にはレジストリに反映されていない状態になります。

今回作成するレジストリのルートキーである「HKEY_LOCAL_MACHINE」配下のレジストリは、管理者権限のあるコマンドプロンプトを起動しないと reg add コマンドが通りません。

よって、対象のbatファイルを右クリックして「管理者として実行」を選択し、UACの警告を経たあとじゃないと反映されません。

ただ、このbatファイルをユーザーが直接実行するのではなく、IT資産管理ツールなどから実行させようとした場合は、Windowsの内部的なユーザーである「SYSTEM」で実行させることができます。
この「SYSTEM」はAdministratorsグループであり管理者権限があります。
よって、「SYSTEM」から実行させる場合は上記の簡単なbatファイルでも正常に反映されます。
 

【参考】ダブルクリック実行で自動的に管理者権限を使って実行するサンプル

ユーザーに手動でbatファイルを実行してもらうにあたって、ユーザーが手順通り「管理者として実行」から実行してくれるのか不安な場合は、bat処理のなかで、管理者権限への昇格処理も含めてしまうと良いかも知れません。

参考として、その場合にbatのコードも紹介しておきます。

  @echo off
  cd /d %~dp0
  echo 管理者として実行されているか判定します。
  for /f "tokens=3 delims=\ " %%A in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%A
    if not "%LEVEL%"=="High" (
        REM Powershellを起動し、以降のコマンドを管理者権限で実行します。
        echo 管理者として実行しなおします。
        powershell -NoProfile -ExecutionPolicy Unrestricted -Command "Start-Process \"%~f0\" -Verb runas"
        timeout /t 5 /nobreak >nul
        exit
    )
  reg add HKLM\SOFTWARE\Policies\Microsoft\Edge /v EnterpriseModeSiteListManagerAllowed /t REG_DWORD /d 1 /f
  reg add HKLM\SOFTWARE\Policies\Microsoft\Edge /v InternetExplorerIntegrationLevel /t REG_DWORD /d 1 /f
  reg add HKLM\SOFTWARE\Policies\Microsoft\Edge /v InternetExplorerIntegrationSiteList /t REG_SZ /d "https://example.com/iemode/sites.xml" /f
  exit
  

このようなbatファイルを作っておくと、もしユーザーが「管理者として実行」を選択してくれていなくても、強制的に管理者権限で実行してくれます。
ご参考まで。

最後に

IEサポート終了目前で、この時期でまだIEモード対応ができていない人も少ないかも知れませんが、もし迷えるシステム管理者さんがいらっしゃるなら参考にしていただければ幸いです。

今回も読んでいただきましてありがとうございました。
それでは皆さまご機嫌よう!

タイトルとURLをコピーしました