元数据
| id | wsl-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)