最近馋上了 Windows 11 支持的 Windows Terminal
(又叫 Windows 终端)而给机器强升了系统,兴高采烈带着笔记本去公司发现,老旧项目工程的网页全都不支持了。网上搜了一圈解决办法发现,好家伙,原来 Windows 11 已经彻底将 IE 移除了!
不过微软还是留了后路的,Windows 11 内置的 Edge 浏览器从 91.0.864.64
版本开始内置了 IE 兼容性模式,确保某些具有兼容性问题的网站也能使用兼容模式打开浏览。(这个网上很多教程随手一搜就有,开启方式就是在 设置 -> 默认浏览器 -> Internet Explorer 兼容性 这个页面下添加你要使用兼容性模式访问的地址就可以了)
但又不知道从某个版本开始,这个列表内的地址被加上了个“到期日期”,也就是从添加地址当天起30天后,再次使用 Edge 浏览器访问这个地址时,Edge 不会再自动使用 IE 兼容模式访问网站。想要恢复也很简单,再次手动将地址加入列表内就可以了。
Edge 的兼容模式已经能解决 Win11 缺少 IE 无法访问部分网站的兼容性问题了,接下来的解决方案比较一劳永逸,但是需要折腾
前排提示:这个方法需要你的 Windows 系统能够使用 组策略编辑器,如果你在系统中没有找到或者运行不了 组策略编辑器,那文件替换后无法修改生效,也是没用的。
本人因为公司的老旧项目工程过多,近期也在逐个适配非 IE 的主流浏览器兼容性,但毕竟迁移改造需要时间,这样每30天就要添加一次地址也太麻烦了。通过查阅微软的帮助文档发现,Edge 浏览器可以通过配置组策略和编写 xml
文件的方式定义打开某些特定网站时强制使用 IE 兼容模式,并且没有到期时间的限制,这样可就一劳永逸了。
首先,Edge 自带的那些策略是可以在 组策略编辑器 里看到的,但可配置项很少,不满足我们的要求。需要去微软官网下载更多的策略包:https://www.microsoft.com/en-us/edge/business/download
这里要注意的是,要下载和自己的 Edge 浏览器版本相对应的的策略包。这里以本人的设备为例,Edge 浏览器的版本为: 102.0.1245.30 (正式版本) (64位),选择好版本后点击旁边的 Get Policies
链接进行下载。
下载完成后把下载好的 cab
压缩包里的 MicrosoftEdgePolicyTemplates
解压出来,这个底下有个 windows
文件夹就是我们需要使用的组策略配置模板。
依次在 MicrosoftEdgePolicyTemplates\windows\admx\
目录下,把这几个文件(文件夹)拷贝到 C:\Windows\PolicyDefinitions
下:
msedge.admx
en-US\msedge.admx
zh-CN\msedge.admx
以上三个文件拷贝到 C:\Windows\PolicyDefinitions
的对应目录下,例如 MicrosoftEdgePolicyTemplates\windows\admx\en-US\msedge.admx
就放到 C:\Windows\PolicyDefinitions\en-US
目录下
打开方式:
键盘上 Win + R,在运行窗口里输入 gpedit.msc
,回车
使用 Cortana 或者 开始菜单 搜索"编辑组策略"
进入控制面板,类别视图下进入"系统和安全" -> 搜索栏输入 “编辑组策略”
打开组策略编辑器后,左侧导航栏找到 “计算机配置” -> “管理模板” -> “Microsoft Edge”,在右侧的策略列表里找到下面的两个配置项:
file:///D:/sites.xml
(这里的文件名最好是英文但不一定要和我一样,如果你的 xml
文件在 C 盘根目录那就输入 file:///C:/your_filename.xml
,以此类推),确定保存这里有两种方式,可以用 Enterprise Mode Site List Manager
(下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=49974)生成一个 sites.xml
文件到刚才定义的目录下,或者使用下面的模板(也是我用 Enterprise Mode Site List Manager
生成出来的):
<site-list version="1">
<created-by>
<tool>EMIESiteListManagertool>
<version>12.0.0.0version>
<date-created>06/01/2022 05:50:50date-created>
created-by>
<site url="www.baidu.com">
<compat-mode>IE8Enterprisecompat-mode>
<open-in allow-redirect="true">IE11open-in>
site>
site-list>
Default Mode
IE8Enterprise
IE7Enterprise
IE11Document
IE10Document
IE9Document
IE8Document
IE7Document
IE5Document
第一个 Default Mode
应该是交给 Edge 自己判断用哪种版本最合适。我这里的情况,工程项目在 IE8Enterprise
下是支持最好的,这个可以看情况自行选择。
None
IE11
MSEdge
这个按照微软提供的文档来看,想要设置 IE 兼容性就必须设定为 IE11
,没什么好讲的。
到这里配置完成,就可以重新启动 Edge 浏览器并输入文件里配置的地址看看效果了。(设置中显示“由组织管理”,代表组策略生效)
由于这个方法是通过组策略来控制 Edge 的部分设置,当浏览器进行大版本升级时可能会因为策略包的变动而失效。我们同样可以通过组策略来关闭 Edge 检查到新版本后的更新行为。
依次在 MicrosoftEdgePolicyTemplates\windows\admx\
目录下,把这几个文件(文件夹)拷贝到 C:\Windows\PolicyDefinitions
下:
msedgeupdate.admx
en-US\msedgeupdate.admx
zh-CN\msedgeupdate.admx
重新打开 组策略编辑器,左侧导航栏找到 “计算机配置” -> “管理模板” -> “Microsoft Edge 更新” -> “应用程序”,在右侧的策略列表里找到 “更新策略替代默认值”,选择"已启用",下方的"更新策略"列表中选择"更新已禁用",确定保存
[1]: Configure IE mode policies | Microsoft Docs
[2]: Use the Enterprise Mode Site List Manager | Microsoft Docs
[3]: Configure Microsoft Edge policy settings on Windows devices | Microsoft Docs
[4]: Microsoft Edge 浏览器策略文档 | Microsoft Docs
[5]: Enterprise Mode Site List Manager 安装包下载
[6]: Microsoft Edge Policies Template 组策略扩展包下载