Windows Server 2019 下 node-windows 创建的服务报1067错误无法启动如何解决?
Windows Server 2019 node-windows服务启动报错1067修复方案
是否为系统兼容性问题
不存在node-windows与Windows Server 2019的普遍兼容性缺陷,报错为两个系统版本的默认权限、配置差异导致。
修复步骤
- 升级
node-windows模块版本
v0.1.14及更早版本未适配Windows Server 2019的服务权限规则,执行以下命令升级到最新正式版后重新创建服务测试:npm update node-windows -g(全局安装场景)或npm update node-windows(项目本地安装场景) - 调整服务运行账号权限
Windows Server 2019对服务默认运行账号的权限约束远高于2008/2016,可通过两种方式修改:
- 代码创建服务时显式指定本地系统账号:
const Service = require('node-windows').Service; const svc = new Service({ name: 'MyService', script: '你的项目入口文件绝对路径', // 新增登录配置 logOnAs: { account: 'LocalSystem', password: '' } });
- 已创建的服务手动修改:打开服务管理器→找到对应服务右键选择【属性】→切换到【登录】选项卡→选择【本地系统账户】→勾选【允许服务与桌面交互】→保存后重启服务。
- 修正路径权限与存放位置
Windows Server 2019默认禁止服务访问用户个人目录下的文件,若你的项目或Node.js运行时存放在C:\Users\目录下,先迁移到C:\Program Files\等公共目录,然后给项目目录、Node.js安装目录都添加SYSTEM用户的完全控制权限。 - 排查具体报错原因
node-windows会在项目根目录下自动生成daemon日志目录,目录内的error.log会记录服务启动失败的具体原因(如依赖缺失、端口被占用、Node.js版本不兼容等),可根据日志内容做针对性修复。
内容的提问来源于stack exchange,提问作者CamilleChlc
相关产品推荐
相关产品推荐

