返回

解决PM2报错: Error: spawn wmic ENOENT (Windows 11/10)

开发配置

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 命令安装
  1. 打开 PowerShell(管理员模式)
    • 在 Windows 搜索框输入 PowerShell,右键 以管理员身份运行
  2. 运行以下命令安装 WMIC
    dism /online /enable-feature /featurename:WMIC
    
  3. 等待安装完成后,重启计算机
  4. 验证是否安装成功
    • 命令提示符(CMD) 中运行:
      wmic process get name
      
    • 如果没有报错,说明安装成功!
方式 2:通过 Windows 设置安装

打开 Windows 设置,进入 系统 > 可选功能(Optional features)

image.png

点击 添加可选功能(Add an optional feature)

image.png

在搜索框中输入 WMIC,勾选它,然后点击 下一步 安装。

我已经安装完,搜索不到了,安装后可以在 已添加的功能里找到

image.png

安装完成后,重启计算机。

命令提示符(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 或其他替代方案。