启用 windows 服务以使用命令行

Enable windows service to use command line

我编写了一个简单的服务,现在可以在我的 windows 服务上使用。我的问题是我无法通过 windows 服务访问 cmd。我正在为我的服务使用 nodejs express,node-cmd 用于 cmd 访问,node-windows 用于创建服务。我的应用是这样做的:

app.get('/check', (req, res) => {
    cmd.run('start chrome');
    res.status(200).send('The server is working correctly :)');
});

对于那些不明白这一点的人,它基本上意味着:

Listen for the GET '.../check' call, then do:
    cmd: start chrome
    return response 'The server is working correctly :)'

当我手动 运行 时,它会启动 chrome。当我将它用作 windows 服务时,它不会启动 chrome 但它会响应 The server is working correctly :)

出于某种原因,cmd 命令在 windows 服务中不起作用?

来自 Windows Vista 服务进程 运行 在用户进程 运行 的不同 session/desktop 中(有 Microsoft white paper)。

因此,如果您从服务启动 chrome.exe,它将 运行 在服务会话中,并且在用户桌面上不可见。您可以查看任务列表以确保它已经开始。