无法使用 NSSM 在 window 10 中启动服务

Unable to start service in window 10 by using NSSM

我已经创建了一个小脚本文件来测试。

这是我的 script.bat 文件。

sc create myService binpath= C:\Users\Admin\Desktop\test.bat start= auto 

这是我的 test.bat 文件。

echo "Welcome to Wizard"

问题陈述

我无法从 控制面板 服务部分启动服务。

我收到以下错误。

[SC] 启动服务失败 1053: 服务没有及时响应启动或控制请求。

这就是我使用 nssm 的原因。

现在发生的事情是当我 运行 在 powershell

上执行命令时

.\nssm install myService,出现对话框。我给它我的脚本文件的路径,然后单击安装服务。

服务安装成功后。我转到控制面板 -> 服务 -> 针对 myService 单击开始,但它暂停并出现以下对话框

  1. 我该如何解决这个问题?
  2. 有没有其他方法可以在不执行手动步骤且不使用第三方工具的情况下完成此操作。
  3. 我正在 window 10. 我需要任何服务器来执行此任务吗?

注意:在我的情况下,我不能使用 Always up 或 window 调度程序。

NSSM 行为是由脚本几乎立即终止引起的。尝试以下脚本:

echo Hello World pause

这应该允许服务启动,但您不一定会看到控制台 window。即使您勾选 'allow service to interact with desktop',它也不会与您的桌面进行交互!

Windows 实施 'session zero isolation' 作为一项安全功能,这实质上阻止了服务与最终用户桌面的交互。

就解决方案而言,可以使用 Visual Studio 相当简单地编写 Windows 'service' 应用程序。这超出了我的专业领域,但基于我熟悉的 Windows 应用程序,您通常会有一个用户模式应用程序 运行 提供桌面交互。用户模式应用程序可以与服务应用程序托管的服务进行交互。

现在可能已经解决了,但如果它对任何人有帮助,为我节省时间的是再次检查我在 nssm 的参数字段中的输入。我有一个额外的“-”导致了错误。要编辑我的服务,我通过 nssm edit <servicename>