依我的古老印象,IE 預設會開在 32 位元模式,64 位元模式要額外設定。同事反映 32bit ActiveX 無法在 IE 執行,並懷疑 64 位元 Windows 10 的 IE11 預設會跑 64 位元模式,調查過程我也被迷惑了...

我們都知道工作管理員檢視時,32 位元程式會額外標註,如下圖中的 IAm32BitConsoleApplication.exe 被編譯成 x86 平台,在工作管理員應用程式名稱會標示【(32位元)】,而 IE 則沒有。

另一個線索則系統中有 C:\Program Files (x86)\Internet Explorer\iexplore.exe 與 C:\Program Files\Internet Explorer\iexplore.exe 兩個不同執行檔,貌似一個 32 一個 64 版,但事實是不管你開啟哪一個 iexplore.exe,在工作管理員看到的結果都相同,不會出現【(32位元)】字樣。所以 IE11 已經變成預設跑 64 位元了嗎?

切到詳細資料頁籤加入「平台」欄位,真相逐漸浮現。當執行 iexplore.exe 時,IE 會啟動一個 64 位元的主程式,每個頁籤則對應一個 32 位元版本的 iexplore.exe:

如以下展示,開啟四個頁籤的 IE,預設有一個 64 位元跟四個 32 位元 iexplore.exe,每關閉一個頁籤就少一個 32 位元 iexplore.exe,最後一個頁籤關閉時,64 位元 iexplore.exe 一併消失:

由此可知,IE11 在 64 位元 Windows 10 預設仍是跑 32 位元模式,如果要改跑 64 位元需設定以下選項並重開 IE:

這樣子,IE 頁籤才會改跑 64 位元 iexplore.exe:

至此,證據確鑿,真相大白。總結如下:

  1. 不管執行 C:\Program Files (x86)\Internet Explorer\iexplore.exe 或 C:\Program Files\Internet Explorer\iexplore.exe 啟動 IE,IE 會有一個主程式都是跑 64 位元,其餘每個頁籤對映一個 iexplore.exe,預設跑 32 位元。
  2. 透過修改「為加強的受保護模式啟用 64 位元處理程序 / Enable 64-bit Processes for Enhanced Protected Mode」選項,可讓 IE 跑 64 位元開網頁。
  3. 同事遇到 32bit ActiveX 無法在 IE 執行的問題,非因 IE 跑 64 位元導致,另有原因。

To find out IE11 on Windows running 32bit or 64bit mode by default on Windows 10 64bit.


Comments

# by epmanxp

分享2個之前處理ActiveX無法載入的方法 1. 取消「ActiveX篩選」 2. HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth改為1 參考網址 https://docs.microsoft.com/zh-tw/troubleshoot/browsers/32-bit-browser-applications-not-working-as-expected

# by Jeffrey

to epmanxp,感謝分享經驗。

# by GeorgeTseng

不過,是否該為了原生64位元來連帶啟用IE的"加強的受保護模式"恐怕也是個可以衡量的點吧 Active X的部分,如果一直都有安裝Windows的最新patch,有可能是根本已經被移除了(包含21H1在內的所有Windows 10、Windows 8版本,微軟都有個專門移除原本透過Windows Update獲得更新的ActiveX Flash Player的更新) https://www.ithome.com.tw/news/144171

Post a comment