这页适用于 Windows 旧版,例如已安装的 0.4.14。0.5.4 已处理这里的两项兼容问题,不需要按本页手动设置。 新版如果仍然卡住,请把版本和完整提示发给我们,不要套用旧版命令。
长时间卡在防火墙步骤
如果旧版在防火墙相关步骤等待很久,没有继续,可以按下面的方法为当前运行的 Code Sandbox 添加一条入站允许规则。
执行前
- 保持 Code Sandbox 运行,不要先退出或重开 App。下面的命令需要找到当前正在运行的程序。
- 在开始菜单搜索 Windows PowerShell,右键选择 以管理员身份运行。如果用 Windows Terminal,请选择管理员窗口里的 PowerShell,不要粘贴到命令提示符或沙箱终端。
- 这条规则只指定找到的那个 Code Sandbox 程序,但会允许本地子网向它建立入站 TCP 连接,涵盖所有网络配置文件,未限定本地端口。规则重启后仍然保留,请在你信任的网络中使用。
复制整段命令执行
$appExe = Get-CimInstance Win32_Process |
Where-Object {
$_.ExecutablePath -like "$env:LOCALAPPDATA\CodeSandbox\App\*\Code Sandbox.exe"
} |
Sort-Object CreationDate -Descending |
Select-Object -First 1 -ExpandProperty ExecutablePath
if ([string]::IsNullOrWhiteSpace($appExe) -or !(Test-Path -LiteralPath $appExe)) {
throw "未找到当前运行的 Code Sandbox.exe,请确认 App 仍在运行"
}
$appExe
$ruleName = "CodeSandbox-Emergency-GuestRuntime-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
New-NetFirewallRule `
-Name $ruleName `
-DisplayName $ruleName `
-Group "Code Sandbox emergency recovery" `
-PolicyStore PersistentStore `
-Enabled True `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-Program $appExe `
-RemoteAddress LocalSubnet `
-Profile Any
命令会先显示当前程序路径,再创建一条带时间戳的规则。看到规则信息后,回到 Code Sandbox 检查原步骤是否继续;如果应用已显示失败,再使用页面上的重试入口。不要反复执行整段命令,以免添加多条规则。
- 提示“未找到当前运行的 Code Sandbox.exe”,先确认 App 仍在运行。自定义安装路径不匹配时,请联系我们确认,不要把程序路径改成通配放行。
- 提示“拒绝访问”,检查是不是管理员 PowerShell。
- 规则已创建但仍卡住,把应用提示和命令报错发给我们。不要关闭整个防火墙或删除其他规则。
查看或撤回这条规则
在刚才的同一个 PowerShell 窗口里,可以查看它的状态。
Get-NetFirewallRule -Name $ruleName -PolicyStore PersistentStore |
Select-Object Name, Enabled, Direction, Action, Profile
如果已经换了窗口,先把执行时输出的完整规则名赋给 $ruleName。确认不再需要这条临时处理规则后,用下面的命令只删除这一条。
Remove-NetFirewallRule -Name $ruleName -PolicyStore PersistentStore
不要把规则名换成 *。升级后程序路径可能变化,旧规则也不会自动对应到新的程序;可以联系我们确认是否清理。
旧版无感模式需要开发者模式
Windows 旧版使用无感模式前,先在本机 Windows 设置中打开“开发者模式”,具体步骤见无感模式的旧版 Windows 设置。只使用隔离浏览器时,不用为此开启它。
参数说明可参考 Microsoft 防火墙命令文档。这段命令是旧版问题的处理方法,不能代替对其他网络或系统问题的排查。