使用 SC 安装 windows 服务,然后设置恢复属性
Posted
技术标签:
【中文标题】使用 SC 安装 windows 服务,然后设置恢复属性【英文标题】:Using SC to install a windows service and then set recovery properties 【发布时间】:2013-02-11 17:04:33 【问题描述】:我想在 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"
问题是当第一个空格被击中时,它会切断路径并将路径的其余部分作为输入参数:
所以...在服务的属性对话框中(运行 -> services.msc -> 右键单击 MyService -> 属性 -> 恢复选项卡) 我选择 “后续故障-> 运行程序
如您所见,我在命令中的路径周围放置了“”。如何在路径中创建空格? 我知道我可以只创建一条没有空格的路径,但这不是重点:-)
【问题讨论】:
【参考方案1】:这种语法似乎有效:
sc failure MyService command= "\"c:\program files\myservice\myservice.exe\""
【讨论】:
啊,就是这样!非常感谢。当然是反斜杠。并感谢您看到过去的道路搞砸了。 拯救了我的一天!谢谢! 作为一个有趣的旁注,Windows 命令行中的保护字符是^
。但是当 需要 在=
之后有一个空格时会发生什么(叹气)
@Matthieu:插入符号保护字符免受命令行 shell 的命令行处理,因此保护例如管道字符很有用。在这种情况下,我们正在处理应用程序的命令行处理,默认情况下(即,如果应用程序使用 Microsoft 的 C 运行时库来解析命令行,这似乎是这里的情况)使用反斜杠。以上是关于使用 SC 安装 windows 服务,然后设置恢复属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 SC.exe 或 InstallUtil.exe 安装 Windows 服务 - 有区别,但哪个?