我发现有些电脑用Edge就没有Copilot,去搜索了一下发现Edge的Copilot在中国区会自动隐藏起来,而直接修改 %LOCALAPPDATA%\Microsoft\Edge\User Data\Local State文件中的本地位置就直接可以解决这个问题。

解决

可以用下面的PowerShell脚本直接解决

1. 创建脚本文件

  1. 在电脑任意位置(例如桌面或文档中)新建一个文本文档。
  2. 将下面的代码复制并粘贴进去。
  3. 将文件保存,并重命名为 EdgeHK.ps1 (注意后缀名必须是 .ps1 而不是 .txt)。
# EdgeHK.ps1
# ----------------------------------------------------
# 脚本功能:关闭Edge,修改Local State文件中的地区为HK
# ----------------------------------------------------

# 1. 定义文件路径
$localStatePath = "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Local State"
$backupPath = "$localStatePath.bak"

Write-Host "正在检查 Edge 进程..." -ForegroundColor Cyan

# 2. 确保后台没有 Edge 进程
# -ErrorAction SilentlyContinue 表示如果没有进程也不报错
Stop-Process -Name msedge -Force -ErrorAction SilentlyContinue
Stop-Process -Name msedgewebview2 -Force -ErrorAction SilentlyContinue

# 等待2秒确保文件锁被释放
Start-Sleep -Seconds 2

# 3. 检查文件是否存在
if (Test-Path $localStatePath) {
    Write-Host "找到配置文件,正在读取..." -ForegroundColor Green

    # 4. 读取并解析 JSON
    try {
        $jsonContent = Get-Content -Path $localStatePath -Raw -Encoding UTF8
        # ConvertFrom-Json 会将 JSON 转换为 PowerShell 对象
        $jsonObj = $jsonContent | ConvertFrom-Json

        # 简单的备份(覆盖式)
        Copy-Item -Path $localStatePath -Destination $backupPath -Force

        # 5. 修改或添加 variations_country 键值
        # 注意:PowerShell 对象可以直接操作属性
        if ($null -ne $jsonObj.variations_country) {
            Write-Host "当前值为: $($jsonObj.variations_country),正在修改为 HK..."
            $jsonObj.variations_country = "HK"
        } else {
            Write-Host "键不存在,正在添加 variations_country = HK..."
            # 如果对象里没有这个属性,我们需要添加成员
            $jsonObj | Add-Member -Type NoteProperty -Name "variations_country" -Value "HK"
        }

        # 6. 保存回文件
        # -Depth 100 非常重要,因为 Edge 的配置文件层级很深,默认层级不够会导致数据丢失
        # -Compress 用于压缩 JSON (去掉多余空格),保持文件紧凑,Edge 默认是压缩格式
        $jsonObj | ConvertTo-Json -Depth 100 -Compress | Set-Content -Path $localStatePath -Encoding UTF8

        Write-Host "修改成功!" -ForegroundColor Green
    }
    catch {
        Write-Error "发生错误:$_"
    }
} else {
    Write-Warning "未找到文件:$localStatePath"
}

# 如果你想看结果,可以取消下面这行的注释(去掉#号)
# Read-Host "按回车键退出..."

注意!有的时候用Win10会出现编码错误的问题,将代码直接复制粘贴在Windows PowerShell ISE中保存可以正常运行,右键ps1文件点击编辑就可以用这个打开,主要的核心问题就是Win10的 PowerShell 在运行的时候中文用Utf-8的编码会乱码报错,要使用GB2312 也就是 GBK编码才行

2. 运行方式(三种选择)

方式 A:单次手动运行

右键点击 EdgeHK.ps1 文件,选择 “使用 PowerShell 运行”

方式 B:每次启动电脑自动运行(推荐)

为了实现“每次启动”都执行,我们需要将其放入启动文件夹。

  1. 按下键盘上的 Win + R 键,打开“运行”窗口。
  2. 输入 shell:startup 并回车,这会打开“启动”文件夹。
  3. 不要直接把 .ps1 文件放进去(因为直接放进去通常会用记事本打开,而不是运行)。
  4. 在启动文件夹中,右键 -> 新建 -> 快捷方式
  5. 在“请键入对象的位置”中,输入以下内容(请修改为您实际存放脚本的路径):
powershell.exe -ExecutionPolicy Bypass -File "C:\你的脚本存放路径\EdgeHK.ps1"

例如,如果你把脚本放在C盘根目录,那就是:powershell.exe -ExecutionPolicy Bypass -File "C:\EdgeHK.ps1"
6. 点击下一步,随便起个名字(例如 EdgeHK_Auto),点击完成。
以后每次开机,它都会闪过一个黑框,自动帮你修改该文件。

方式 C:通过双击 BAT 文件运行(方便日常点击)

如果你不想开机自启,而是想每次用 Edge 前点一下,可以创建一个 .bat 文件:

  1. 新建文本文档,粘贴以下内容:
	@echo off PowerShell.exe -ExecutionPolicy Bypass -File "EdgeHK.ps1"

1. 保存为 RunEdgeHK.bat(放在与 .ps1 同一目录下)。

  1. 双击这个 .bat 文件即可运行。