无法使用NSSM

时间:2017-08-16 04:56:03

标签: powershell batch-file windows-services window windows-10

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

这是我的 script.bat 文件。

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

这是我的 test.bat 文件。

echo "Welcome to Wizard"

问题陈述

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

我收到以下错误。

[SC] StartService FAILED 1053:     该服务未及时响应启动或控制请求。

这就是我使用nssm的原因。

现在发生的事情是当我在powershell上运行以下命令时

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

成功安装服务后。我去控制面板 - >服务 - >点击 myService 开始,但会暂停并显示以下对话框

enter image description here

  1. 我该如何解决这个问题?
  2. 有没有其他方法可以在不执行手动步骤且不使用第三方工具的情况下执行此操作。
  3. 我在窗口10上做了所有这些。我需要任何服务器来执行此任务吗?
  4. 注意:在我的情况下,我不能使用Always up或窗口调度程序。

2 个答案:

答案 0 :(得分:1)

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

echo Hello World pause

这应该允许服务启动,但您不一定会看到控制台窗口。即使您勾选“允许服务与桌面交互”,它也不会与您的桌面进行交互!

Windows实现'会话零隔离'作为安全功能,这实质上阻止了服务与最终用户桌面交互。

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

答案 1 :(得分:0)

现在可能已经解决了这个问题,但如果它对任何人有帮助,对我来说挽救这一天的是再次检查我在 nssm 的参数字段中的输入。我有一个额外的“-”,它造成了错误。为了编辑我的服务,我通过 nssm edit <servicename>