首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在服务帐号中使用node-windows?

如何在服务帐号中使用node-windows?
EN

Stack Overflow用户
提问于 2021-09-14 16:03:02
回答 1查看 71关注 0票数 1

我使用node-windows将我的节点应用程序作为服务运行。因为我打算使用node-expose-sspi,所以我用powershell创建了一个service account (我检查了一下Test-ADServiceAccount)。

如果我运行这段代码

代码语言:javascript
复制
var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'project-name',
  description: 'node server',
  script: 'C:\\server\\server.js'
  ,  allowServiceLogon: true
  // ,
  //  env:{
  //  name: "NODE_ENV",
  //  value: "production"
  //   }
});

// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
  svc.start();
});

// Just in case this file is run twice.
svc.on('alreadyinstalled',function(){
  console.log('This service is already installed.');
});

// Listen for the "start" event and let us know when the
// process has actually started working.
svc.on('start',function(){
  console.log(svc.name+' started!\nVisit http://127.0.0.1:5000 to see it in action.');
});

// Install the script as a service.
svc.install();

我收到控制台日志'project-name started...‘但是服务没有被创建(我检查了get-process)。如果我省略了'allowServiceLogon: true‘,服务就会被创建。

如何在node-windows中指定服务帐户?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-17 19:40:51

语法

node-windows v1.1.8似乎使用的是winsw版本2,因此您需要根据此xmlConfigFile.md设置选项(不要忘记$-sign)。

代码语言:javascript
复制
<serviceaccount>
  <domain>YOURDOMAIN</domain>
  <user>gmsa_account$</user>
  <allowservicelogon>true</allowservicelogon>
</serviceaccount>

故障排除

如果没有创建服务,则是因为gMSA没有足够的权限a)节点窗口的npm文件夹(如果是全局安装的,则应该是C:\Users\username\AppData\Roaming\npm ),b) npm文件夹的“入口点”(C:\Users\username)以及您的节点app.js所在的文件夹(例如C:\projects\myserverproject)。您至少需要具有写入权限。此外,将不会创建守护程序文件夹(C:\projects\myserverproject\daemon)中的windows节点日志文件!这使得故障排除变得更加困难。用户LocalService也是如此。

我的建议

如果完全省略allowServiceLogon和其他登录属性,则服务将被创建为LocalSystem。LocalSystem具有足够的权限。现在您可以在Windows GUI中将LocalSystem更改为gMSA (搜索“services.msc”)。如果gMSA没有足够的权限,服务将启动,但会立即停止。然后,您可以在事件查看器中找到错误日志。错误日志将告诉您需要向哪些文件夹添加权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69181084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档