2014-04-04 15 views
4

我在VB.NET中创建了一项服务,并希望使用“sc”程序进行安装。 (我需要将它打包,从而使他人在我的组织其他人可以执行实际的安装。)如何使用“sc”安装服务并指定NO ACTION用于恢复下的“后续故障”

我想要的“恢复”选项,如下所示:

  • 第一次失败:重新启动
  • 二失败:重新启动
  • 后续失败:什么都不做

这是我最初尝试的命令(在实际安装):

sc failure MyServiceName reset= 86400 actions= restart/15000/restart/30000 

但是随后在GUI中查看服务“后续故障”也被设置为重新启动。我看着所以没找到具体的东西。我最终发现了这一点,我在这里发布这个消息,以防其他人正在寻找与我相同的“快速”答案。当然,如果有人有任何贡献,我很乐意阅读。

回答

7

我终于想通了,这样运行命令:

sc failure MyServiceName reset= 86400 actions= restart/15000/restart/30000//1000 

一旦我这样做,并重新openned服务属性GUI,“不采取任何行动”显示,因为我希望它是。

后,我开始写的问题,我也终于发现这太问题: https://stackoverflow.com/a/12631379/1812688

虽然,它是不是在这个问题

2

要在这个答案扩大,sc命令的直接响应是愚蠢finnicky,而你需要做的几件事情:

  1. 必须提供“重置”和“动作”的同时
  2. 你必须有一个水疗中心每个选项后,所以reset= <number>,等
  3. 你不能提供'行动'的任何选项(尽管什么documentation on sc.exe claims),但你可以提供用斜线分隔的空值。所有这3个命令将使它所以没有操作任何的3次
    • sc failure EraAgentSvc reset= 86400 actions= //
    • sc failure EraAgentSvc reset= 86400 actions= ////
    • sc failure EraAgentSvc reset= 86400 actions= //////

和这些命令将结束与'sc qfailure'结果:

C:\Users\Administrator>sc qfailure EraAgentSvc 
[SC] QueryServiceConfig2 SUCCESSSERVICE_NAME: EraAgentSvc 
     RESET_PERIOD (in seconds) : 86400 
     REBOOT_MESSAGE    : 
     COMMAND_LINE     :