Microsoft edge@常见问题@重大功能更新和变迁发版记录@edge便携历史版本共存@由组织管理@策略组@版本问题@回滚和共存

本地edge浏览器由组织管理@功能受限检查

  • 在这里插入图片描述在这里插入图片描述
    浏览器输入edge://management/检查通过修改注册表(删除edge条目并重启计算机尝试取消意料之外的组织管理导致的功能设置受限)
    • edge://management/
  • 查询本地edge浏览器功能受限和策略

    • 进入edge://management/edge://policy/

例:侧边栏功能被禁用

  • 关键字:HubsSidebarEnabled,到注册表中删除相应关键字

解出限制(删除相关注册表条目)

  • 命令行方式:在管理员权限下打开cmd或powershell,输入以下内容并回车执行

    • reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge

    • PS C:\Users\cxxu\Desktop> reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge
      
      Permanently delete the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge (Yes/No)? yes
      The operation completed successfully.
      
  • 手动删除方式:打开注册表编辑器(cmd中输入regedit),检查并删除以下条目(如果有的话)

    • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft
      HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft
      
  • 进入edge://policy/;点击重载策略(Reload Policies)按钮

    • 或重启计算机;或登出当前windows账户(sign out) 然后重新登录windows

    • 或管理员权限运行gpupdate /force刷新注册表

      • PS C:\Users\cxxu\Desktop> gpupdate /force
        Updating policy...
        
        Computer Policy update has completed successfully.
        User Policy update has completed successfully.
        

解除限制检查

  • 如果您的edge不再受组织管理的限制,查询的结果为形如:**“Microsoft Edge is not managed by a company or organization”**的提示

refs

页面加载问题

this page having a problem

禁止edge更新👺

refs

利用防火墙进制edge更新

  • 分段运行下面的脚本即可,用管理员权限打开一个终端后,不需要打开其界面

  • 准备工作:获取edgeupdater.exe路径

    • 通常这个路径是:"C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe";

    • # 以管理员权限打开一个shell窗口,保证防火墙能够顺利配置
      # 创建一个正则表达式对象
      $path_raw = 'reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\edgeupdate /v ImagePath' | Invoke-Expression
      $regex = [regex] '"(.*)"'
      # 对字符串执行匹配并获取所有匹配项
      $all_matches = $regex.Matches($path_raw)
      $edge_updater_path = $all_matches[-1].Value -replace '"', ''
      
      Write-Host $edge_updater_path
      #通常这个路径是:"C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe"
      
      #设置接下来要操作的防火墙规则名字
      $deu="Disable Edge Updates"
      
  • 添加防火墙

    • #修改防火墙需要管理员权限,因此在此操作之前,以管理员权限打开一个shell窗口(如果已经处于管理员窗口,则直接执行下面的语句)
      netsh advfirewall firewall add rule name=$deu dir=out action=block program=$edge_updater_path
      

恢复更新

  • #将禁止edge update的规则禁用,就是恢复edge update
    $deu = "Disable Edge Updates"
    netsh advfirewall firewall set rule name=$deu new enable=no
    
    

powershell函数👺

  • function Get-EdgeUpdaterPath
    {
        <# 
        .SYNOPSIS
        获取edge update的路径并返回,通常不会直接调用,而是由Set-EdgeUpdater调用
        #>
        # 以管理员权限打开一个shell窗口,保证防火墙能够顺利配置
        # 创建一个正则表达式对象
        $path_raw = 'reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\edgeupdate /v ImagePath' | Invoke-Expression
        $regex = [regex] '"(.*)"'
        # 对字符串执行匹配并获取所有匹配项
        $all_matches = $regex.Matches($path_raw)
        $edge_updater_path = $all_matches[-1].Value -replace '"', ''
    
        return $edge_updater_path
        #通常这个路径是:"C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe"
    
    }
    
  • function Set-EdgeUpdater
    {
        <# 
        .SYNOPSIS
        设置edge update是否启用(通过配置防火墙实现)
    
        #>
        param(
            [switch]$Enable,
            [switch]$Disable
        )
        $deu = 'Disable Edge Updates'
        if ($Enable)
        {
            #将禁止edge update的规则禁用,就是恢复edge update
            netsh advfirewall firewall set rule name=$deu new enable=no
    
        }
        elseif ($Disable)
        {
            #方案1:删除防火墙规则(比较简单的做法)
            # netsh advfirewall firewall delete rule name=$deu
            # 方案2:禁用防火墙规则(为了避免反复配置相同的规则,需要一定的判断逻辑,更加安全)
            netsh advfirewall firewall show rule name=$deu
            if ($?)
            {
                Write-Output 'there is already a rule of disable edge update,enable it...'
                netsh advfirewall firewall set rule name=$deu new enable=yes
            }
            else
            {
    
                Write-Output 'create a new rule of disable edge update...'
                $edge_updater_path = Get-EdgeUpdaterPath
                #修改防火墙需要管理员权限,因此在此操作之前,以管理员权限打开一个shell窗口(如果已经处于管理员窗口,则直接执行下面的语句)
                netsh advfirewall firewall add rule name=$deu dir=out action=block program=$edge_updater_path
            }
        }
        # 配置完检查结果
        netsh advfirewall firewall show rule name=$deu
    }
    
  • 运行示例

    • .EXAMPLE
      禁止edge更新
         PS>set-EdgeUpdater -Disable
        
         Rule Name:                            Disable Edge Updates
         ----------------------------------------------------------------------
         Enabled:                              Yes
         Direction:                            Out
         Profiles:                             Domain,Private,Public
         Grouping:
         LocalIP:                              Any
         RemoteIP:                             Any
         Protocol:                             Any
         Edge traversal:                       No
         Action:                               Block
         Ok.
        
         there is already a rule of disable edge update,enable it...
        
         Updated 1 rule(s).
         Ok.
      
      Rule Name:                            Disable Edge Updates
      ----------------------------------------------------------------------
      Enabled:                              Yes
      Direction:                            Out
      Profiles:                             Domain,Private,Public
      Grouping:
      LocalIP:                              Any
      RemoteIP:                             Any
      Protocol:                             Any
      Edge traversal:                       No
      Action:                               Block
      Ok.
      
      
      

防火墙状态检查

  • 检查防火墙规则

    • $deu="Disable Edge Updates"
      netsh advfirewall firewall show rule name=$deu
      
  • 结果示例

    <# 
    PS>netsh advfirewall firewall show rule name=$deu
    
    Rule Name:                            Disable Edge Updates
    ----------------------------------------------------------------------
    Enabled:                              Yes
    Direction:                            Out
    Profiles:                             Domain,Private,Public
    Grouping:
    LocalIP:                              Any
    RemoteIP:                             Any
    Protocol:                             Any
    Edge traversal:                       No
    Action:                               Block
    Ok.
     #>
    
    

作用范围

  • 上述防火墙配置,对于本机的各个edge版本都同时起作用,包括正式版和预览版
个别版本更新
  • 假设我想要更新正式版,而预览版保留旧版,则可以打开系统的网络计费模式
  • 关闭防火墙规则(恢复edge update联网)
  • 进入正式版edge,打开计费流量仍然下载,更新
  • 重新启用防火墙,流量计费可关闭也可不关闭

edge版本更新日志👺

版本发布日志和功能变迁

重大功能改动日志

类似的可以看到预览版的发布日志

版本回滚

官方旧版本edge下载

  • 尽管我们推荐使用免安装版本,但是启动方便可能会和系统自带的edge相互影响,导致数据混乱
  • 网络上有卸载edge的工具,我没去试,如果卸载后安装旧版本并且阻止自动更新或许是个方法
  • 以下是可以找到旧版本的网站

使用非稳定版与最新稳定版共存

  • 虽然edge正式版卸载和版本回滚不容易,但是可以使用非Stable版(Beta,Dev,Canary)版本,这些版本不仅可以和正式版共存,还容易卸载和回滚旧版本

将最新的edge版本制作为便携版

流行的第三方制作的便携版👺

便携版edge使用注意事项

  • 许多便携版有附带有配置脚本(.bat)

  • 运行以后会影响到系统自带的版本

  • 比如我下载了两个便携版的edge,两个文件结构目录如下

    • PS [C:\exes\Edge]> tree_lsd -depth 2.
      ├──  Edge113
      │   ├──  App
      │   ├── 󰃨 Cache
      │   ├──  Data
      │   ├──  Tools
      │   ├──  开始.bat
      │   └──  说明.txt
      └──  Edge116
          ├──  116.0.1938.69
          ├──  Edge
          ├──  msedge.exe
          ├──  msedge_proxy.exe
          ├──  version.dll
          ├──  优化.bat
          └──  清理.bat
          
      
      
  • 我个人不会去执行这里的bat脚本文件,这可能改动注册表,可能会导致自带的edge部分出错

不同的edge版本混用@切换👺

  • 想要同时运行连个不同版本的edge有点麻烦,可以试试沙箱类工具

  • 但是不同时间段运行不同edge版本则是相对容易做到的,切换版本前先彻底退出前一个正在运行的edge版本

    • 点击菜单里的关闭edge,而不是仅仅关闭所有标签窗口,特别是有些后台服务或后台插件运行着
    • 或者用命令行来关闭stop-process -name msedge(powershell),您可以创建一个该命令行的快捷方式方便切换
  • 您可以发现了,这些流行便携版的目录里面有2个msedge.exe文件

    • 外层那一个是便携版作者会添加一些自带的插件进去
    • 内层msedge.exe则和系统自带的联系比较紧密:
      • 为了便于讨论,这里假设系统的edge版本为A,便携版内层edge版本为B
      • 当系统没有运行edge(或者执行powershell命令:stop-process -name msedge)后,若执行便携版就会运行版本B的edge;若执行系统安装的edge则执行版本A
      • 如果系统已经打开了一个edge,其版本记为X(取值为A,或B),那么接下来无论执行便携版或者系统安装版edge都会打开版本为X的edge
  • 我有自己的插件习惯,并在系统自带的edge上安装好了,所以我不会运行便携版外部的msedge.exe,而是进入到内部文件中去找msedge.exe

    • PS [C:\exes\Edge]> rvpa .\Edge116\116.0.1938.69\msedge.exe
      
      Path
      ----
      C:\exes\Edge\Edge116\116.0.1938.69\msedge.exe
      
      PS [C:\exes\Edge\Edge113\App]> rvpa .\msedge.exe
      Path
      ----
      C:\exes\Edge\Edge113\App\msedge.exe
      
      
  • 然后创建对应版本的快捷方式到桌面或对快捷方式改名后固定到开始菜单

用便携版代替安装版

  • 关闭自带edge开机自启(相关服务);
  • 将便携版内层的msedge.exe创建快捷方式发送到桌面
  • 以后通过该快捷方式浏览网页和文件

检查或切换当前浏览器版本👺

如果您混用系统自带的edge版本和便携版edge,有时可能会串台

使用edge:\\versions来查看(可以收藏到收藏栏,标记为EdgeVersionEdge)

此外,还可以用stop-process -name msedge来关闭edge,以便您切换版本运行

推荐版本

  • 由于edge在117版本移除了SmartCopy(很好用的一个功能,被砍了,微软的常规操作👺)

  • 我推荐110~115版本的(支持智能复制(web select)和数学求解器以及语法工具还有screen split功能,是功能最多的几个版本)

  • 但我推荐这几个本中的选择一个,然后找对应的便携版(这样可以通过一定的方法避免系统自带的冲突),用户可以选择系统自带更新到最新版本(可以体验某些新功能和改进,使用更新的chromium内核版本),也可以使用这些固定的老版本(某些好用的功能没有被阉割)

    • [Microsoft Update Catalog 113](https://www.catalog.update.microsoft.com/Search.aspx?q= x64 edge*113)
    • 搜索支持通配符

    在这里插入图片描述

posted @ 2024-01-06 00:51  xuchaoxin1375  阅读(103)  评论(0)    收藏  举报  来源