Microsoft Edge 或 Chrome 无法使用 出现 STATUS_INVALID_IMAGE_HASH.

解决方案

Start-Process powershell -Verb runAs
Remove-Item msedge.VisualElementsManifest.xml -Force
Set-Clipboard -Value 'cd "C:\Program Files (x86)\Microsoft\Edge\Application"
Remove-Item msedge.VisualElementsManifest.xml -Force
Copy-Item "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" "C:\Program Files (x86)\Microsoft\Edge\Application\chrome.exe" -Force
.\chrome.exe --disable-features=RenderCodeIntegrity'
  • 将以上代码保存为 edge.ps1, 放在 e:\my_bin 目录下,这个目录是我用来存放可以直接在 cmd 中运行的命令的。 因此必须将 e:\my_bin 添加到系统 path 中。
  • 随意打开一个powershell。 比如 win+R 打开运行, 输入powershell。 图1
  • 在 Powershell 窗口中输入edge 回车。这是会要管理员权限,点是。 图2
  • 此时会弹出一个新的powershell,但是是带有管理员身份的。标题是:管理员 Windows Powershell
  • 在这个 新的 Powershell 窗口右击。(因为此时你的剪贴已经被覆盖为代码了),然后回车。
  • 可能(而且一定)会有错误的红字,但是最后一句话一定是:.\chrome.exe --disable-features=RenderCodeIntegrity,见图3
  • 回车。edge就能用了。

图1 :
图1 运行powershell

图2 :
图2

图3:

问题

下载个浏览器容易么。 https://www.microsoft.com/zh-cn/edge?form=MY01BV&OCID=MY01BV

一打开居然是这样:

找了许多方法,试了很多次,终于解决了,以下各种方法基本都可用。但是注意在行动之前——————

  • 一定要关闭所有基于chromium的浏览器!
  • 一定要关闭所有基于chromium的浏览器!
  • 一定要关闭所有基于chromium的浏览器!
  • 一定要关闭所有基于chromium的浏览器!
  • 一定要关闭所有基于chromium的浏览器!
  • 一定要关闭所有基于chromium的浏览器!
  • 一定要关闭所有基于chromium的浏览器!
  • 一定要关闭所有基于chromium的浏览器!

包括edge, chrome, 或者国产套壳浏览器。

不仅仅是桌面应用,有时关闭了可见桌面应用也会有后台应用,此时打开任务管理器: ctrl+shift_esc 看到chrome, chromium, edge 把他们统统统统统统杀光光。

方法1:改注册表

  1. Win+R打开运行对话框
  2. 输入 regedit 打开注册表并且导航到:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge
  3. 在右边窗口中,右键单击新建>DWORD(32位)值,双击创建的新值,然后将新值名称改为 RendererCodeIntegrityEnabled 并将值数据输入为 0(默认创建的也为0)
  4. 重启Edge

方法2:修改可执行文件名

找到 Edge 的安装位置,一般在 C:\Program Files (x86)\Microsoft\Edge\Application\ 这个目录,把 edge.exemsedge.exe 修改为 chrome.exe 再启动。

此时桌面上快捷方式可能不再可用,再发送到桌面一个快捷方式即可。

方法3:--disable-features=RendererCodeIntegrity

打开 powershell 或 cmd, 切到安装目录(一般是在 C:\Program Files (x86)\Microsoft\Edge\Application\),输入 .\msedge.exe --disable-features=RendererCodeIntegrity 启动 edge

这样启动就可以正常运行啦。但每次这样运行可能比较麻烦,可以 建立一个 edge.ps1 的脚本程序:

start-process -FilePath "C:\Program Files (x86)\Microsoft\Edge\Application\chrome" -ArgumentList "--disable-features=RenderCodeIntegrity"

这样每次运行这个脚本就可以。可以将这个脚本所在的文件夹添加到Path,这样每次用 powershell 运行很方便。

注意初次使用powershell运行脚本可能会有权限问题。使用Get-ExecutionPolicy 查看策略。详见: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7

参考资料:


2020年6月19日更新

以下是我的最新实践。

当前版本是 83.0.478.45 ,Win10企业版,直接打开,依然无法打开任何网页(甚至是本地离线网页)。

首先打开Edge的位置,在开始菜单右击 -> 更多 -> 打开文件位置。

此时只是打开了快捷方式所在的位置,再次在图标上右击 -> 打开文件所在的位置

就到了这个文件夹: C:\Program Files (x86)\Microsoft\Edge\Application, edge就是 msedge.exe,此时我们就已经得到了所有想要拿到的东西了。

  • win+R,输入 cmd 打开命令行。 或者输入 powershell, 打开 powershell
  • 输入以下命令: cd "C:\Program Files (x86)\Microsoft\Edge\Application" ,切到 msedge.exe 所在的文件夹
  • 再输入以下命令: ./msedge.exe --disable-features=RenderCodeIntegrity ,启动 Edge

此时就可以正常打开edge了。部分情形下可能会有失效的情况,一般都是chrome浏览器或者chromium浏览器没有关闭,或者有后台应用。

但是每次都输入这两个命令比较麻烦,可以打开一个记事本,输入以上两条命令,命名为 fake_edge.cmd,保存在桌面。

posted @ 2020-06-01 13:53  何大卫  阅读(3918)  评论(1编辑  收藏  举报