English | 简体中文
你是否想彻底摆脱 Edge,并投入到 Chrome / Firefox 生态中,但发现总有一些软件依赖于 msedgewebview2?
当你彻底删除 Windows 中的 Edge,却发现一些软件又自动安装了 msedgewebview2,之后附带着把 Edge 又装了一次?
若你对本地的 msedgewebview2 有特殊定制要求,但苦于软件无法默认识别你的指定版本?
本项目旨在解决这些问题,让 Windows 默认识别你自己的 msedgewebview2。
- 下载脚本 后,以管理员权限打开 PowerShell,运行以下指令。
cd <脚本所在路径>
.\choose_msedgewebview2.ps1或者复制 choose_msedgewebview2.ps1 内容并粘贴运行。
-
选择界面语言(English / 简体中文)。
-
选择模式 1,粘贴 msedgewebview2.exe 所在文件夹的完整路径并回车,例如:
D:\Test\Microsoft.WebView2.FixedVersionRuntime.133.0.3065.92.x64脚本会自动验证路径并读取版本号,然后完成写入。
若需防止其他程序覆盖已写入的路径,在脚本启动后选择模式 2,即可为相应注册表路径添加 ACL 写入限制。
若需修改或重新设置,在脚本启动后选择模式 3,即可移除 ACL 锁定,再使用模式 1 重新写入。
以下软件均已验证可通过本脚本正常识别自定义 msedgewebview2:
| 步骤 | 操作 | 防御的逃逸场景 |
|---|---|---|
| 系统级环境变量写入 | Machine 级设置 WEBVIEW2_BROWSER_EXECUTABLE_FOLDER |
优先级高于注册表策略,确保 Loader 首先命中此值 |
| 清除 User 级环境变量 | 将 User 级设为 $null |
防止用户态的同名变量覆盖机器级设定 |
| 注册表 ACL 锁定 | 拒绝 Users / NetworkService 对策略键写入 | 防止低权限进程篡改已写入的路径值 |
| 策略注册表多路径 | 同时写入 64 位 / WOW64 / HKCU 三条路径 | 覆盖 32 位应用、用户级策略覆盖两种逃逸路径 |
| Tauri 已安装记录 | 写入 EdgeUpdate Clients 注册表键 | 防止 Tauri 框架检测不到 WebView2 而触发自动安装 |
执行完成后必须重启或注销重新登录,否则已运行的进程仍从旧的进程环境变量块中读取值。
若运行脚本时出现以下错误:
无法加载文件 ...choose_msedgewebview2.ps1,因为在此系统上禁止运行脚本。
这是 PowerShell 执行策略限制,有以下两种推荐解决方法:
方法一(推荐):绕过执行策略直接运行,不修改系统设置
在管理员权限的 PowerShell 中运行以下命令,只对本次执行生效,不改变系统策略:
PowerShell -ExecutionPolicy Bypass -File ".\choose_msedgewebview2.ps1"方法二:修改当前用户的执行策略
在管理员权限的 PowerShell 中运行以下命令,永久允许运行本地签名脚本:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser执行后重新运行脚本即可。如需还原,将 RemoteSigned 替换为 Restricted 重新执行即可。
若主脚本无法正常运行,可使用仓库附带的 debug_choose_msedgewebview2.ps1 进行诊断。
使用步骤:
-
将
debug_choose_msedgewebview2.ps1与choose_msedgewebview2.ps1放在同一文件夹下。 -
在管理员权限的 PowerShell 中执行:
.\debug_choose_msedgewebview2.ps1
-
调试脚本会依次执行以下检查并将全部输出写入同目录的
debug_log_时间戳.txt日志文件:检查项 内容 CHECK 0 管理员权限检测 CHECK 1 PowerShell 版本是否 ≥ 5.0 CHECK 2 当前执行策略(CurrentUser / LocalMachine) CHECK 3 主脚本文件是否存在于同目录 CHECK 4 主脚本语法解析(AST),精确报告出错行号 CHECK 5 所有注册表路径只读可达性(不写入) CHECK 6 环境变量当前状态(Machine / User / Process 三层) CHECK 7 实际启动主脚本,用 Tee-Object 将交互输出同步写入日志 -
提 issue 时请将生成的
debug_log_*.txt文件附上。
部分软件在检测不到系统 WebView2 时,会自动联网下载安装最新版 msedgewebview2(并附带拉回 Edge)。
如果你发现某款软件无法正确识别你通过本脚本指定的路径:
- 立即断开网络连接,防止软件触发自动下载安装逻辑。
- 前往 Issues 提交 issue,并附上:
- 软件名称和版本号
debug_log_*.txt日志文件内容- 软件的安装来源(官网链接 / GitHub 等)
项目附带 kill_tele.reg,通过 Windows 组策略注册表写入以下限制:
- 关闭 Edge / WebView2 的实验和配置服务通信
- 禁用诊断数据、崩溃报告、指标上报
- 禁用 SmartScreen(会向微软服务器查询 URL)
- 关闭网络预测
- 关闭 Windows 全局遥测开关
双击 kill_tele.reg 并确认导入即可。此操作不影响 choose_msedgewebview2.ps1 的功能,属于独立的隐私增强选项。
以下为社区中常见的配套工具,可根据需要自行选择使用。本项目不对以下工具的使用结果承担任何责任,请自行评估风险。
禁止 Windows 11 系统层自动更新/安装 Edge 和 EdgeWebView2: 注意:此操作会影响 Windows 11 系统正常更新和微软应用商店的功能。
彻底清除已安装的 Edge 和 EdgeWebView2: 以下两个 PowerShell 脚本均可用于卸载残留的 Edge 组件:
获取保持版本同步、且禁止自动更新的便携版 Edge: 若需使用便携版 Edge 而非系统安装版: