沒熬過情人節的 IE11 - 強迫導向 Edge 問題及後續停用計劃
12 |
前情提要:企業 IE 保育指南
IE11 在去年 6/15 停止支援,除了 Windows 10 LTSC 版的 IE11 可以用到 2029,消費者版本 Windows 10 的 IE11 會逐步限縮使用。今年的 2/14 情人節是另一個坎,開啟 IE11 將自動跳轉 Edge,強迫改用 Edge IE Mode。
IE11 桌面版的各階段停用計劃以官方公告(又稱 IE11 生命簿)為準,時程如下:
- 2023/2/14 透過 Edge 更新永久停用 IE11 桌面版,IE11 一啟動就會導向 Edge
- 2023/5/23 透過 Windows 選擇性更新移除開始選單及工作列的 IE11 圖示
- 2023/6/13 透過 Windows 安全更新(強制性)移除開始選單及工作列的 IE11 圖示
一般使用者用的 Windows 10 版本,基本上 IE 11 將依上述時程階段性退場。企業用戶的 Win8.1、Win7 ESU、Windows Sever SAC、Win10 IoT、Win 10 LTSC 及 Server LTSC 的 IE11 則不受影響,可以用到 2029。
我的主要工作環境已換成 Windows 11,平日也鮮少再用 IE,經提醒才發現 Windows 10 的 IE11 沒熬過今年的情人節。
為了驗證我在 Azure 建了一台 Windows 10 Pro 22H2 做測試,但狀況有點混亂,Edge 更新到最新版後,開 IE11 會彈出空白 Edge 畫面,開新頁籤也會,但 IE11 沒被強迫關閉,關掉 Edge 卻可以繼續用 IE11。(不知是否我出現的是空白 Edge 異常有關)
(題外話:意外發現 Azure 的 Windows 10 VM 選項好多,各種 LSTC、LTSB 版本都有,要測特定版本 OS 倒是蠻方便的)
IE11 強制導向 Edge 行為屬官方刻意為之,未提供關閉選項,要避免等於要走上破解的路,我傾向繞道而行。
試了一下,之前在 Windows 11 啟動獨立 IE 應用程式使用的 Classic IE.exe,在 Windows 10 也適用,經實測可以順利開出 IE 獨立應用程式而不會驚動 Edge,雖然使用上跟 IE11 有些許差異,但也算是解法,提供大家參考。
註:Classic IE 是個迷你開源專案,使用 .NET 6 開發,有興趣的朋友可以參考這篇教學下載程式回去編譯,不需要有程式開發基礎花個三分鐘也能做出 EXE 自用。
【2023-02-22 補充】
如果還是想破解 IE 的強制導向,可使用 regedit 修改機碼 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID\1FD49718-1D00-4B19-AF5F-070AF6D5D54C
為 0
或將以下內容存成 disable-ie11-forward-edge.reg 點擊執行:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID]
"{1FD49718-1D00-4B19-AF5F-070AF6D5D54C}"="0"
感謝讀者 Mau-Chiuan Chiu 補充分享。
Comments
# by leolee
雖然可以修改註冊表,但有些麻煩。有發現在IE捷徑後加上 -extoff 參數可停用BHO元件,但在此Classic IE.exe中不知道怎麼加入,是否能請教怎麼處理。
# by Jeffrey
to leolee,有個疑問,我測試 ClassicIE.exe 可以獨立開啟不會被導向,何以還需要停用 BHO 元件?
# by leolee
您好,在win10環境下測試,修改機碼或是改ie_to_edge_stub.exe(更名/刪除), 都會不定期被修正回來,此時就算使用自行編譯的ClassicIE.exe還是會自動跳EDGE。所以想找更單純的方式,從呼叫IE元件地方來修改。
# by Jeffrey
to leolee,我沒遇到不定期被修正回來或 Class IE.exe 也被導向的狀況,不知是否在特殊環境下才會發生。若問題點出在 Registry 不定期會被改掉,那麼在 Classic IE Program.cs 啟動 IE 前加段檢查,發現 Registry 被改了就再將其停用,是簡單粗暴但有效的解法。
# by liwei
您好,我想請問如何在 Classic IE Program.cs 增加啟動 IE 前加段檢查的方式或編碼, 可以在發現Registry 被改了後,再將其停用的方法呢?
# by liwei
因為現在使用 Classic IE 只要點開網頁(例如點開我的最愛內的網頁連結),就會被跳至Edge了,想請教是否有解法,謝謝大神
# by Jeffrey
to liwei, 點任何網頁都跳轉 Edge,還是發生在特定網頁?
# by liwei
to Jeffrey大 點任何我的最愛內的網頁都會跳轉Edge,謝謝您
# by liwei
to Jeffrey BHO元件會被重置為開啟,重新更改Registry,關閉BHO後,則可以使用
# by Neo
to liwei Edge的設定->預設瀏覽器->在 Microsoft Edge 中以 Internet Explorer 開啟網站->設定永不,試試有沒有用,不然就在Chrome上安裝IE Tab套件試試??
# by Jeffrey
to liwei, 我有重現我的最愛跳轉Edge,但測試與 IEToEdge BHO 是否停用無關,我想到的解法是做一個書籤頁 參考:https://blog.darkthread.net/blog/classic-ie-favorites-issue/
# by liwei
Jeffrey 大神,剛剛執行使用您的新增的方法後,在Windows 10 20H2 Edge版本 111.0.1661.51 下測試狀況如下: IEToEdge BHO為開啟狀態:執行ClassicIE,是正常顯示EI11畫面無誤,點選開新分頁,或是點選連結清單網頁的任一連結,都會導引至Edge,Edge瀏覽器設定內的預設瀏覽器 Internet Explorer 相容性 選項設定為:永不。 IEToEdge BHO為關閉狀態:執行ClassicIE,不論執行任何操作,均正常使用IE11模式,不會跳轉至Edge。 Jeffrey大,會是因為我用dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=true 這種打包方式影響我與您的測試結果不同的嗎? 還是打包方式不受影響呢?