🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

资源管理器定位修复 Snowhite0622/dsh-explorer-fix

DeepSeek Harness
Snowhite062211 天前有提交已提供中文文档扫描:含敏感能力

修复文件卡片在资源管理器中打开并选中失效的问题

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Snowhite0622/dsh-explorer-fix
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 11 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
  • 读取本地文件
    verify-reveal.cjs:15
    if (base && fs.existsSync(base)) {
  • 读取本地文件
    verify-reveal.cjs:16
    for (const dir of fs.readdirSync(base)) {
  • 读取本地文件
    verify-reveal.cjs:18
    if (fs.existsSync(p)) found.push(p)
  • 读取本地文件
    verify-reveal.cjs:21
    found.sort((a, b) => fs.statSync(b).mtimeMs - fs.statSync(a).mtimeMs)
  • 执行外部命令固定命令
    verify-shim.cjs:16
    execFile('explorer.exe', ['/select,', uri], { windowsHide: true }, (err) => {
扫描于 2026/11/4(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH Web「在文件资源管理器中显示」失效修复(Windows 10/11):问题 / 根因 / 修复 / 注意事项

README

由 DeepSeek 最新模型翻译生成
dsh-explorer-fix 修复 DeepSeek Harness(DSH)Web 界面里「在文件资源管理器中显示」失效的问题。 适用:Windows 10/11 + dsh Web(实测 Windows 11 26200,dsh 0.1.5-rc.1 / 0.1.5-rc.2) 快速修复(3 步) 1) 修复当前所有 dsh 部署(幂等,可反复运行) powershell -NoProfile -ExecutionPolicy Bypass -File .\dsh-patch.ps1 2) 重启 dsh web(模块在进程内缓存,必须重启才生效) 3) 验证:打开会话末尾的文件卡片 → ▾ 菜单 →「在文件资源管理器中显示」预期:窗口打开且目标文件被选中 更稳妥:用 .\dsh-start.cmd 启动(自动修复 + 版本无关垫片),并按需运行 install-autorepair.ps1 注册登录时自动巡检。 问题现象 DSH 会话末尾的交付文件卡片有一个「在文件资源管理器中显示」菜单项。在 Windows 上点击后: 1. 第一层问题:窗口完全不出现(请求返回成功,界面显示"已请求在文件资源管理器中显示",但没有任何窗口)。 2. 第二层问题:窗口出现了,但文件没有被选中/定位(只打开了桌面或父文件夹)。
展开完整文档(README 剩余 1 节)
dsh-explorer-fix

修复 DeepSeek Harness(DSH)Web 界面里「在文件资源管理器中显示」失效的问题。

适用:Windows 10/11 + dsh Web(实测 Windows 11 26200,dsh 0.1.5-rc.1 / 0.1.5-rc.2)

快速修复(3 步)

1) 修复当前所有 dsh 部署(幂等,可反复运行) powershell -NoProfile -ExecutionPolicy Bypass -File .\dsh-patch.ps1

2) 重启 dsh web(模块在进程内缓存,必须重启才生效)

3) 验证:打开会话末尾的文件卡片 → ▾ 菜单 →「在文件资源管理器中显示」预期:窗口打开且目标文件被选中

更稳妥:用 .\dsh-start.cmd 启动(自动修复 + 版本无关垫片),并按需运行 install-autorepair.ps1 注册登录时自动巡检。

问题现象

DSH 会话末尾的交付文件卡片有一个「在文件资源管理器中显示」菜单项。在 Windows 上点击后:

1. 第一层问题:窗口完全不出现(请求返回成功,界面显示"已请求在文件资源管理器中显示",但没有任何窗口)。
2. 第二层问题:窗口出现了,但文件没有被选中/定位(只打开了桌面或父文件夹)。

根因

两个相互独立、叠加出现的 bug,都在 DSH 的 @deepseek-ai/dsh-native-command 包里:

根因 1:windowsHide 抑制了 GUI 窗口

runNativeCommand 对所有子进程设置 windowsHide: true(等价 CREATE_NO_WINDOW):

execFile(command, [...args], {
encoding: "utf8",
signal,
windowsHide: true
}, ...)

explorer.exe 是 GUI 程序:以 CREATE_NO_WINDOW 启动时窗口被抑制,但进程仍以退出码 1 结束;而 revealNativePath 把"退出码 1"当作"已转交"接受(explorer 分支的 catch),于是整条链路上报成功、实际无窗口。

根因 2:file:/// URI 不被 /select, 接受

revealNativePath 把路径转成 file URI 作为 /select, 参数:

const target = pathToFileURL(windowsPath, { windows: true }).href.replaceAll(",", "%2C");
await run("explorer.exe", ["/select,", target], signal);

在 Windows 11 26200 实测:/select, file:///... 只会打开桌面、不定位文件;而 /select, <普通路径>(两参数形式)才能正确打开并选中。单参数 /select,<path> 在路径含空格时也会失败。

修复

磁盘补丁(持久,推荐)

改 node_modules/@deepseek-ai/dsh-native-command/lib/index.js 两处:

// 1) runNativeCommand 中:仅 explorer 不隐藏 windowsHide: !/^explorer(?:\.exe)?$/i.test(command)

// 2) revealNativePath 中:URI → 普通路径,保留 ["/select,", target] 两参数形式 const target = windowsPath;

运行时垫片(版本无关,推荐)

dsh-explorer-fix.cjs 通过 NODE_OPTIONS=--require 预加载,在 DSH 模块加载前猴子补丁 child_process.execFile:

- 对 explorer(.exe) 强制 windowsHide: false;
- 把 /select, 的 file URI 参数规整为普通路径(两参数形式)。

不修改磁盘文件、不依赖 dsh 版本/缓存目录,升级后依然生效(已验证对 ESM 的 import { execFile } 生效)。

组成文件

| 文件 | 说明 |
| dsh-explorer-fix.cjs | 运行时垫片(NODE_OPTIONS=--require 挂载) |
| dsh-patch.ps1 | 就地修复器:扫描所有 npx 缓存目录 + 全局 npm,修复 dsh-native-command;幂等、带备份、支持 -Check |
| dsh-start.ps1 / dsh-start.cmd | 启动器:materialize 版本 → 修复 → 挂垫片 → 启动 dsh web |
| dsh-patch-launch.vbs | 无窗口启动器:wscript 隐藏运行 dsh-patch.ps1(自定位路径,计划任务用它,不会闪控制台窗口) |
| install-autorepair.ps1 | 注册计划任务:默认登录时运行一次(隐藏无窗口);-Every30Min 改为每 30 分钟巡检(同样无窗口);-Remove 卸载 |
| verify-final.ps1 | 自检:真实模块 + 垫片各测一次「打开 + 选中」 |
| verify-reveal.cjs / verify-shim.cjs | 自检用辅助脚本(自动定位 npx 缓存里的模块) |

快速使用

1) 修复已存在的所有 dsh 部署(幂等,可反复跑) powershell -NoProfile -ExecutionPolicy Bypass -File .\dsh-patch.ps1

2) 声明式自检(会真实弹出一次资源管理器窗口) powershell -NoProfile -ExecutionPolicy Bypass -File .\verify-final.ps1

3) 以后用启动器启动(自动带修复;可 -Version 指定版本) .\dsh-start.cmd

4) 安装自动巡检(默认:登录时运行一次,隐藏无窗口)powershell powershell -NoProfile -ExecutionPolicy Bypass -File .\install-autorepair.ps1

可选:每 30 分钟巡检(同样隐藏无窗口)

powershell -NoProfile -ExecutionPolicy Bypass -File .\install-autorepair.ps1 -Every30Min

卸载:schtasks /Delete /TN DshExplorerFixAutoRepair /F

注意事项(重要)

1. 补丁随 dsh 升级失效:磁盘补丁作用于 npx 缓存中的 vendor 文件;dsh 升级/重装会换缓存目录,需要重打。因此本工具提供三层兜底:运行时垫片(版本无关)、启动器(启动即修复)、计划任务(登录时/每 30 分钟巡检,均可选)。
2. 垫片依赖启动方式:NODE_OPTIONS 只对用 dsh-start.cmd 启动的进程生效。用其他方式启动时依赖磁盘补丁(计划任务会补,但已启动的进程不会热加载,需重启)。
3. 只影响 explorer.exe:垫片与补丁只改 explorer 的调用,其他命令的 console 隐藏行为不变。
4. 备份:dsh-patch.ps1 首次修改文件前会生成 index.js.dshwhale-fix.bak;需要回滚时复制回去即可。
5. 计划任务按用户注册,默认“登录时一次”:任务名 DshExplorerFixAutoRepair;通过 dsh-patch-launch.vbs(wscript 隐藏)运行,不会弹控制台窗口。注意:powershell.exe -WindowStyle Hidden 仍会先让 conhost 闪一下,所以必须用 wscript 包装。部分受限终端(沙箱/非交互上下文)创建“登录时”触发会被拒,安装器会提示并回退为“每 30 分钟”计划(同样无窗口)。
6. 启动前先退出旧的 dsh web:dsh-start.cmd 会和已有实例争用 3080 端口。
7. 脚本编码:.ps1 必须保存为 UTF-8 with BOM——Windows PowerShell 5.1 会把无 BOM 的 UTF-8 脚本按 GBK 误读,导致中文乱码甚至解析异常。
8. 平台范围:仅 Windows(explorer.exe 分支)。macOS 用 open -R、Linux 用 xdg-open,不受此 bug 影响。
9. 上游修复是最好的长期方案:本工具是本地 workaround。建议同时向 deepseek-ai/deepseek-harness 提 issue(附下方草稿)。
10. 部署位置:脚本可放在任意目录——计划任务与启动器都按脚本自身位置($PSScriptRoot / WScript.ScriptFullName)定位,无需改路径。

许可证

本项目基于 MIT License 开源。

附录:给上游的 issue 草稿

标题:Windows: 「在文件资源管理器中显示」无效 — runNativeCommand 对 explorer.exe 设置 windowsHide,且 /select, 使用 file URI

现象:Windows 11 26200,点击交付文件卡片的「在文件资源管理器中显示」:请求返回成功(204),但 ①窗口不出现;②(绕过 ① 后)窗口出现但文件未被选中。

根因:
1. packages/*/native-command/lib/index.js(runNativeCommand)对所有子进程设 windowsHide: true(CREATE_NO_WINDOW)。explorer.exe 为 GUI 程序,被 CREATE_NO_WINDOW 启动时窗口被抑制,但进程仍以退出码 1 返回;revealNativePath 把退出码 1 视为成功转交 → 静默失败。
2. 同文件 revealNativePath 用 pathToFileURL(windowsPath, { windows: true }).href 作为 /select, 参数;在 Windows 11 26200 上该形式不选中文件(仅打开桌面),而普通路径的两参数形式 ["/select,", windowsPath] 可正确选中。单参数 /select,<path> 在含空格路径下也失败。

建议修复:
- runNativeCommand:对 explorer(.exe) 不设 windowsHide(GUI 程序不应带 CREATE_NO_WINDOW);
- revealNativePath:直接传普通路径,保留两参数形式 ["/select,", windowsPath]。
预览分享卡片长什么样 ↓Snowhite0622/dsh-explorer-fix
分享 · DeepSeek Harness Hub
Snowhite0622/dsh-explorer-fix

修复文件卡片在资源管理器中打开并选中失效的问题

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部