Windows下PM2服务运行Node.js应用无法访问网络驱动器求助
问题解决:PM2服务运行时无法读取Windows网络驱动器文件
核心原因
Windows服务(包括通过pm2-installer注册的PM2服务)默认在本地系统账户下运行,该账户无网络共享资源访问权限,也无法识别当前用户映射的网络驱动器(如M:),即便使用UNC路径,也会因权限验证失败触发“文件未找到”错误。
解决步骤
1. 为PM2服务配置有权限的用户账户
- 按Win+R输入
services.msc打开Windows服务管理器 - 找到PM2对应的服务(通常命名为
PM2或PM2 Service) - 右键选择「属性」→「登录」选项卡
- 勾选「此账户」,输入具备网络共享访问权限的本地/域账户(比如你日常登录Windows的账户),填写密码后确认
- 重启PM2服务
2. 用UNC路径替代驱动器映射
直接使用UNC路径(格式为\\服务器名\共享文件夹),避免依赖用户会话的驱动器映射:
const fs = require('fs'); // 替换为你的网络共享UNC路径 fs.readFileSync('\\\\server-name\\shared-folder');
注:JavaScript中反斜杠需转义,因此要写四个\\。
3. 验证网络共享权限
- 确认配置的账户对目标网络共享文件夹拥有对应权限(读取/写入,按需设置)
- 用该账户登录Windows,手动访问UNC路径,测试能否正常打开文件夹
4. PM2集群模式的额外说明
若使用集群模式,无需额外配置,上述服务账户的设置已覆盖所有子进程的权限上下文。
关键提示
- 服务运行在独立会话,无法识别用户会话中的网络驱动器映射,务必使用UNC路径
- 本地系统账户无网络访问能力,必须切换到具备对应权限的用户账户
内容的提问来源于stack exchange,提问作者Narendra Singh
相关产品推荐
相关产品推荐

