sym*_*reg 137 windows-services
使用时创建Windows服务:
sc create ServiceName binPath= "the path"
Run Code Online (Sandbox Code Playgroud)
如何将参数传递给Installer类的Context.Parameters集合?
我对sc.exe文档的阅读是这样的论证只能在最后传递binPath,但我没有找到一个例子或者能够成功地做到这一点.
Mhm*_*hmd 246
sc create <servicename> binpath= "<pathtobinaryexecutable>" [option1] [option2] [optionN]
Run Code Online (Sandbox Code Playgroud)
诀窍是在create语句中的=后面留一个空格,并且对包含特殊字符或空格的任何内容使用"".
建议为服务指定显示名称,并将开始设置设置为自动,以便自动启动.您可以通过在create语句中指定DisplayName= yourdisplayname和来完成此操作start= auto.
这是一个例子:
C:\Documents and Settings\Administrator> sc create asperacentral
binPath= "C:\Program Files\Aspera\Enterprise Server\bin\Debug\asperacentral.exe"
DisplayName= "Aspera Central"
start= auto
Run Code Online (Sandbox Code Playgroud)
如果这有效,你应该看到:
[SC] CreateService SUCCESS
Run Code Online (Sandbox Code Playgroud)
更新1
http://support.microsoft.com/kb/251192
Hug*_*une 145
创建的服务的参数有一些特殊的格式化问题,特别是如果命令包含空格或引号:
如果要输入服务的命令行参数,则必须将整个命令行括在引号中.(并且总是binPath=在第一次引用之前和之前留下一个空格,正如mrswadge指出的那样)
因此,要为命令创建服务,PATH\COMMAND.EXE --param1=xyz
您将使用以下binPath参数:
binPath= "PATH\COMMAND.EXE --param1=xyz"
^^ ^
|| |
space quote quote
Run Code Online (Sandbox Code Playgroud)
如果可执行文件的路径包含空格,则必须将路径括在引号中.
因此,对于具有命令既参数,并用空格的路径,你需要嵌套引用.你必须用反斜杠转义内部引号\".如果参数本身包含引号,则同样成立,您也需要转义它们.
尽管使用反斜杠作为转义字符,但您不必转义路径中包含的常规反斜杠.这与通常使用反斜杠作为转义字符的方式相反.
所以对于像这样的命令
"PATH WITH SPACES \COMMAND.EXE" --param-with-quotes="a b c" --param2:
binPath= "\"PATH WITH SPACES \COMMAND.EXE\" --param-with-quotes=\"a b c\" --param2"
^ ^ ^ ^ ^ ^ ^
| | | | | | |
opening escaped regular escaped escaped closing
quote quote backslash closing quotes quote
for for in quote for for
whole path path for path parameter whole
command command
Run Code Online (Sandbox Code Playgroud)
以下是SVNserve文档中的一个具体示例,该文档显示了所有特殊情况:
sc create svnserve
binpath= "\"C:\Program Files\CollabNet Subversion Server\svnserve.exe\" --service -r \"C:\my repositories\" "
displayname= "Subversion Server" depend= Tcpip start= auto
Run Code Online (Sandbox Code Playgroud)
(为了便于阅读,添加了换行符,不包括它们)
这将使用命令行添加新服务"C:\Program Files\CollabNet Subversion Server\svnserve.exe" --service -r "C:\my repositories".
binpath=_,displayname=_和depend=_小智 11
sc create "YOURSERVICENAME" binpath= "\"C:\Program Files (x86)\Microsoft SQL Server\MSSQL11\MSSQL\Binn\sqlservr.exe\" -sOPTIONALSWITCH" start= auto
请参见此处:修改Windows服务的"可执行路径"
小智 5
我有问题让这个在Windows 7上工作.它似乎忽略了我传入的第一个参数,所以我使用binPath= "C:\path\to\service.exe -bogusarg -realarg1 -realarg2"它并且它工作.
| 归档时间: |
|
| 查看次数: |
394475 次 |
| 最近记录: |