Как использовать модуль node-powershell в службе Windows, созданной с использованием модуля node-windows?
Я использовал модуль node-windows для создания 'Demo Service' в service.js.
Service.js
var Service = require('node-windows').Service
var os = require('os')
var svc = new Service({
name: 'Demo Service',
description: 'This service get metro app list.',
script: require('path').resolve(`C:\\Users\\${os.userInfo().username}\\index.js`)
})
svc.install()
Демонстрационная служба выполняет index.js, в котором я использовал модуль node-powershell, чтобы получить список приложений метро через 'Get-AppxPackage | Выберите Name'PowerShell команду.
index.js:
const shell = require('node-powershell');
var sysInfo = {}
var systemInformation = function () {
let ps = new shell({
executionPolicy: 'Bypass',
noProfile: true
});
ps.addCommand('Get-AppxPackage | Select Name')
ps.invoke()
.then(installedMetroApps => {
sysInfo.installedMetroApps = installedMetroApps;
ps.dispose();
next(null, 1)
})
.catch(err => {
ps.dispose();
throw err;
});
}
systemInformation();
Когда я выполняю index.js, используя узел, то есть узел index.js, я получаю список установленного MetroApps, как и ожидалось, но когда я запускаю демонстрационную службу через службы в окнах, список установленного метрополитена пуст.