使用 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 服务,然后设置恢复属性的主要内容,如果未能解决你的问题,请参考以下文章

Windows安装服务命令sc

如何在Windows下卸载重装Mysql

使用 SC.exe 或 InstallUtil.exe 安装 Windows 服务 - 有区别,但哪个?

windows sc使用方法之一

安装 C# 后,无法使用 WPF App 使用 SC.exe 创建 Windows 服务

sc安装后如何自动启动windows服务?