Windows 桌面版:受限模式(workspace-write)下 pwsh 工具必然失败 0xC0000142;同一版本经 npx 启动的 Web UI 正常 #8313
sailoumili
started this conversation in
General
Replies: 1 comment
|
This is the same host variable the |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
npx启动的 Web UI现象
pwsh工具的任何调用都返回exit code 3221225794(0xC0000142,STATUS_DLL_INIT_FAILED),连最简单的echo也一样。切到danger-full-access后,同一条命令立刻正常。pwsh完全正常(可用子进程的TEMP被改写为<temp>\dsh-<hash>私有目录,确认沙盒确实在生效)。两种启动方式的差异(定位到的关键)
process.execPathnpx启动)node.exeDeepSeek Harness.exe,以ELECTRON_RUN_AS_NODE=1运行(宿主环境变量里可直接看到)问题出在哪
@deepseek-ai/dsh-sandbox-local构造 runner 前缀时用的是:于是:
0xC0000142。旁证:桌面版进程列表里能看到活的
dsh-subprocess-local/lib/runner.js子进程(说明「Electron 二进制当 Node 子进程」本身并非一律不可行),但看不到dsh-sandbox-windows-acl/lib/runner.js进程。最小复现
1. Electron 二进制当 Node 用时的子进程行为
在
ELECTRON_RUN_AS_NODE=1下用 Electron 二进制跑一个脚本:spawnSync('cmd.exe', ['/c', 'echo hi'])→status=0,正常返回;spawnSync('<PowerShell 7 安装目录>\\pwsh.exe', ['-NoProfile', '-c', 'Write-Output ok'])→ 整个进程静默消失(无输出、无退出码)。同步spawnSync与异步spawn表现一致。2. 完全照生产写法启动沙盒 runner
node.exe:受限cmd、受限pwsh(7.6.6)、受限powershell.exe(5.1)全部 status=0;ELECTRON_RUN_AS_NODE=1):第一步进程就消失,日志断在第一个受限子进程之前。已排除
pwsh 的来源与版本(商店 MSIX 与官方 MSI 都试过,且在真 node 宿主下受限运行正常)、ACL 与文件权限、受限令牌与 SID、低完整性标签、
SystemRoot缺失、宿主提权(UAC 已关闭)、工作区路径、cmd.exe与 Windows PowerShell 5.1。建议
沙盒 runner 不要以
process.execPath作为宿主:桌面版应改用真正的 Node 解释器(随包内置,或按需解析一个可用的 node),或者在process.execPath指向 Electron 二进制时另行选择 node 来启动 runner。All reactions