You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在node-windows中指定服务账户运行Node应用服务?

解决node-windows指定自定义服务账户的方法

你只配置了allowServiceLogon: true但未配套传入服务账户信息,导致服务创建逻辑执行失败,但是事件监听仍会触发所以会输出启动成功的日志,属于配置缺失导致的问题。

正确配置方式

需要在Service实例的配置项中新增两个必填参数:

  • objectName:服务账户名称,格式要求如下:
    • 本地账户:格式为.\本地账户名
    • 域普通服务账户:格式为域名称\账户名
    • 域组托管服务账户(gMSA):格式为域名称\gMSA账户名$,末尾必须带$符号
  • password:服务账户的密码,组托管服务账户此处填空字符串""即可,无需手动填写密码

完整配置示例

var Service = require('node-windows').Service;

var svc = new Service({
  name:'project-name',
  description: 'node server',
  script: 'C:\\server\\server.js',
  allowServiceLogon: true,
  // 新增以下两项服务账户配置
  objectName: '你的域名\\服务账号名称', // 按你的账户类型替换为对应格式的账户名
  password: '服务账号的密码', // 组托管服务账户此处填 ""
  env:{
    name: "NODE_ENV",
    value: "production"
  }
});

svc.on('install',function(){
  svc.start();
});

svc.on('alreadyinstalled',function(){
  console.log('This service is already installed.');
});

svc.on('start',function(){
  console.log(svc.name+' started!\nVisit http://127.0.0.1:5000 to see it in action.');
});

svc.install();

额外注意事项

  • 运行安装服务的脚本时,必须用管理员权限启动终端,否则没有权限为服务配置登录账户
  • 确保你使用的服务账户对Node应用目录、脚本路径、日志输出路径有对应的读写执行权限
  • 服务安装完成后可以打开services.msc,找到对应服务查看「登录」标签,确认账户配置是否生效

内容的提问来源于stack exchange,提问作者Fusscreme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:36:02