Problem entry · machine-readable · 编码代理与终端

WSL 里运行 notepad.exe / cmd.exe 报 command not found(interop 失效)

本页嵌入 #trove-entity JSON(本条目全量结构化数据);全库数据见 /agent/trove.json。

元数据

idwsl-interop-disabled收录2026-08-31
问题域编码代理与终端主题分组容器与 WSL
适用工具wsl · 外部工具

症状

```

$ notepad.exe

-bash: notepad.exe: command not found

$ which cmd.exe

(无输出)

```

特征:WSL 里 Windows 程序集体消失;`/etc/wsl.conf` 有 `[interop]` 段且值为 false;改完没重启发行版也会「看起来没生效」。

原因

interop 默认开启,靠启动时注册 binfmt(enabled)与追加 Windows PATH(appendWindowsPath)实现。wsl.conf 把两个开关设为 false 后,Windows 进程不可执行且 PATH 里找不到。改 wsl.conf 必须重启发行版生效。

解法

1. `cat /etc/wsl.conf` 找 `[interop]` 段;

2. `enabled=true` + `appendWindowsPath=true`(没有该段就整段追加);

3. Windows 侧 `wsl --terminate <发行版名>` 重启;

4. `which cmd.exe` + 运行验证。

验证证据

- 机制核对:微软官方文档(learn.microsoft.com/windows/wsl/wsl-config 的 [interop] 段);

- 本机对照(2026-08-31):定制预构建版未配置 [interop] 段(默认全开)——`which cmd.exe` 命中、`cmd.exe /c echo` 可执行;未做故障复现(避免影响工作环境);

- 实测复现日志(2026-08-31)

来源与证据

素材来源:微软官方文档机制核对 + 本机对照(2026-08-31)

验证证据:Evidence details kept locally (2026-08-31)