跳转到主要内容HOME
KOLIKO / 20262026年05月28日 / 5 min read

让 UWP 应用 (OpenAI Codex) 走本地代理的完整折腾指南

为了让我电脑上的 OpenAI Codex (Microsoft Store 版/UWP版) 能够通过本地的代理软件 (`127.0.0.1:7890`) 联网,我最初尝试写了一个简单的 PowerShell 脚本设置环境变量并启动程序,但

2026年05月28日5 min read
未分类

让 UWP 应用 (OpenAI Codex) 走本地代理的完整折腾指南

📌 背景与痛点

为了让我电脑上的 OpenAI Codex (Microsoft Store 版/UWP版) 能够通过本地的代理软件 (127.0.0.1:7890) 联网,我最初尝试写了一个简单的 PowerShell 脚本设置环境变量并启动程序,但遭遇了连环挫折:

  1. Start-Process 不继承环境变量:PS1 脚本中设置的 $env:HTTP_PROXY 只对当前进程有效,Start-Process 打开的新进程无法读取。
  2. WindowsApps 权限拦截:尝试直接运行 C:\Program Files\WindowsApps\...\Codex.exe 时,被系统拒绝访问,提示 CommandNotFoundException
  3. UWP 网络隔离:这是最隐蔽的坑。UWP 应用运行在沙箱中,默认被禁止访问本机回环地址 (127.0.0.1),且不读取系统环境变量,只读取 Windows 系统代理设置。

🛠️ 最终解决方案核心思路

  1. 启动方式:放弃绝对路径,利用快捷方式属性中找到的 AppUserModelID (AUMID) 启动应用。
  2. 代理设置:放弃环境变量,通过修改注册表直接开启 Windows 系统代理
  3. 解除网络隔离:使用 EnableLoopback 工具为 Codex 放行本机访问权限。

🚀 实施步骤

第一步:解除 UWP 本地网络限制 (必须)

UWP 默认无法连接 127.0.0.1,必须解除 Loopback 限制:

  1. 下载微软官方小工具:EnableLoopback Utility
  2. 右键以管理员身份运行该工具。
  3. 在列表中找到 OpenAI Codex,勾选它。
  4. 点击 Save Changes

第二步:创建 PowerShell 脚本 (核心逻辑)

在桌面新建文本文档,重命名为 Codex Proxy.ps1,写入以下代码:

1# 1. 设置 Windows 系统代理(UWP 应用只认这个) 2 $regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" 3Set-ItemProperty -Path $regPath -Name ProxyEnable -Value 1 4Set-ItemProperty -Path $regPath -Name ProxyServer -Value "127.0.0.1:7890" 5Set-ItemProperty -Path $regPath -Name ProxyOverride -Value "localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;192.168.*" 6 7Write-Host "System Proxy ON: 127.0.0.1:7890" -ForegroundColor Green 8 9# 2. 利用快捷方式里的 AUMID 启动 Codex (完美避开 WindowsApps 权限问题) 10Start-Process "shell:AppsFolder\OpenAI.Codex_2p2nqsd0c76g0!App" 11 12Write-Host "Codex Started!" -ForegroundColor Green 13Write-Host "----------------------------------------" 14Write-Host "Press Y to turn OFF system proxy, or any other key to exit." -ForegroundColor Yellow 15 16# 3. 交互式关闭代理(防止系统代理一直挂着影响其他软件) 17 $choice = Read-Host "Input choice" 18if ($choice -eq 'Y' -or $choice -eq 'y') { 19 Set-ItemProperty -Path $regPath -Name ProxyEnable -Value 0 20 Write-Host "System Proxy OFF." -ForegroundColor Green 21}

(注:如果你的代理端口不是 7890,请修改 ProxyServer 那一行的端口号)

第三步:创建 BAT 启动器 (双击即运行)

由于直接双击 .ps1 文件默认会在记事本打开,我们需要一个 .bat 文件来唤醒它。

在与 Codex Proxy.ps1 同目录下,新建文本文档,重命名为 Start Codex.bat,写入以下代码:

1@echo off 2powershell.exe -ExecutionPolicy Bypass -File "C:\Users\kolik\Documents\Codex\icon\Codex Proxy.ps1" 3pause

pause可以不要,调试的时候方便看信息

第四步:美化快捷方式 (更换图标)

BAT 文件默认图标太丑,我们可以通过创建快捷方式来换皮:

  1. 右键点击 Start Codex.bat -> 发送到 -> 桌面快捷方式
  2. 回到桌面,右键刚刚创建的快捷方式 -> 属性
  3. 点击更改图标,选择你喜欢的 .ico 图标文件(你可以去网上下载一个好看的 Codex 图标)。
  4. 还可以在这个界面把运行方式改为最小化,这样启动时黑框就不会闪那么大。

💡 总结与避坑

  • UWP 不读环境变量:遇到 Store 版应用需要代理,直接改系统注册表是最稳的。
  • UWP 沙箱限制:如果代理软件本身没有开启 TUN 模式(虚拟网卡接管),一定要用 EnableLoopback 解除限制。
  • AUMID 是关键:通过 shell:AppsFolder\包名!App 的方式启动 UWP 应用,是最优雅且不会因版本更新而失效的方法。
  • 标点符号杀手:写 PS1 脚本时,遇到报错先检查是不是用了中文的全角引号 “”,必须替换为英文半角 ""