返回
解决PM2报错: Error: spawn wmic ENOENT (Windows 11/10)
开发配置
2025-03-11 10:46:04
1. 问题描述
在 Windows 10 或 Windows 11 中使用 PM2 运行 Node.js 进程时,可能会遇到如下错误:
PM2 | Error caught while calling pidusage
PM2 | Error: Error: spawn wmic ENOENT
PM2 | at ChildProcess.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\pm2\node_modules\pidusage\lib\bin.js:33:10)
这个错误会不断重复,影响 PM2 的正常运行。
2. 错误原因
PM2 依赖 wmic.exe
来获取进程状态信息,而 Microsoft 在 Windows 11 及部分 Windows 10 版本中移除了 WMIC,导致 PM2 无法找到 wmic
,从而报错。
相关的 GitHub 讨论:PM2 Issue #5311
3. 解决方案
方法 1:安装 WMIC(适用于 Windows 11 & 部分 Windows 10 版本)
微软官方提供了重新安装 WMIC 的方法,适用于 Windows 11 和某些移除 WMIC 的 Windows 10 版本。
安装步骤
方式 1:通过 PowerShell 命令安装
- 打开 PowerShell(管理员模式)
- 在 Windows 搜索框输入
PowerShell
,右键 以管理员身份运行。
- 在 Windows 搜索框输入
- 运行以下命令安装 WMIC
dism /online /enable-feature /featurename:WMIC
- 等待安装完成后,重启计算机
- 验证是否安装成功
- 在 命令提示符(CMD) 中运行:
wmic process get name
- 如果没有报错,说明安装成功!
- 在 命令提示符(CMD) 中运行:
方式 2:通过 Windows 设置安装
打开 Windows 设置,进入 系统 > 可选功能(Optional features)。
点击 添加可选功能(Add an optional feature)。
在搜索框中输入 WMIC
,勾选它,然后点击 下一步 安装。
我已经安装完,搜索不到了,安装后可以在 已添加的功能里找到
安装完成后,重启计算机。
在 命令提示符(CMD) 中运行 wmic process get name
确认是否安装成功。
📌 官方参考:How to Install WMIC Feature on Windows 11
4. 总结
解决方案 | 适用情况 | 适用系统 |
---|---|---|
安装 WMIC | 推荐,根本解决 | Windows 11/10 |
通过 PowerShell 安装 WMIC | 适用于高级用户 | Windows 11/10 |
通过 Windows 设置安装 WMIC | 适用于所有用户 | Windows 11/10 |
对于 Windows 11 或者 Windows 10 已删除 WMIC 的版本,最好的解决方法是重新安装 WMIC。
微软官方已宣布 WMIC 未来将在 Windows 11 及 Windows Server 的新版本中默认禁用,因此建议长期来看,可以考虑迁移到 PowerShell 或其他替代方案。