使用SC安装Windows服务并设置恢复属性

46
我希望能在安装Windows Server 2003上的Windows服务时设置恢复选项。我知道手动设置是可行的,但我想在安装服务时设置恢复配置。我使用SC脚本来完成这个任务:
SC create MyService displayname= "MyService" binpath= "C:\Program Files\MyService\MyService.exe" start= auto

SC failure MyService reset= 86400 actions= restart/1000/restart/1000/run/1000

SC failure MyService command= "C:\Program Files\Myservice\MyService.exe"

问题在于当遇到第一个空格时,它会截断路径并将其余部分作为输入参数。

screendump here

在服务的属性对话框中 (运行 -> services.msc -> 右键单击 MyService -> 属性 -> 恢复选项卡),我选择 "后续故障 -> 运行程序" 如您所见,我已在命令中的路径周围加上了""。如何使路径中包含空格? 我知道我可以只使用没有空格的路径,但这不是重点 :-)
1个回答

20

这个语法似乎可行:

sc failure MyService command= "\"c:\program files\myservice\myservice.exe\""

啊,就是这样!非常感谢。当然,那是反斜杠的问题。还要感谢您看到了路径错误。 - user2110298
救了我的一天!谢谢! - Guilherme de Jesus Santos
作为一个有趣的侧面说明,在Windows命令行中的保护字符是^。但当在=后面需要有一个空格时,会发生什么(叹气)。 - Matthieu
@Matthieu:插入符号是用来保护命令行处理中的字符的,因此它可以用来保护管道符号等字符。在这种情况下,我们正在处理应用程序的命令行处理,如果应用程序使用Microsoft的C运行时库来解析命令行(这似乎就是这种情况),则默认使用反斜杠。 - Harry Johnston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接