8

我很确定答案很简单,但就是这样;

我正在使用 TopShelf 安装我的服务,我可以从命令行成功安装和运行它

MyExecutable.Daemon 安装 MyExecutable.Daemon 启动

这很好,但它必须在服务中,但我没有尝试过;

sc create "MyExecutable.Daemon" binPath= "C:\'Program Files (x86)'\MyExecutable.Daemon.exe" DisplayName= "MyExecutable.Daemon" start= auto

但得到了

Set-Content : A positional parameter cannot be found that accepts argument 'binpath='.
At line:1 char:1
+ sc create MyExecutable.Daemon binpath= "C:\'Program Files (x86)'\...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Set-Content], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand

所以我被困在这里。我在这里想念什么?

4

2 回答 2

22

sc在 powershell 中是set-Contentcmdlet 使用的别名sc.exe

试试这个(未测试)

sc.exe create "MyExecutable.Daemon" binPath="C:\'Program Files (x86)'\MyExecutable.Daemon.exe" DisplayName="MyExecutable.Daemon" start=auto
于 2013-09-19T11:44:00.607 回答
2

你应该这样做MyExecutable.Daemon install start。我想我之前已经从 PowerShell 提示符成功完成了该操作,但我想我必须进行验证。如果这不起作用,您需要使用其中一个日志记录插件启用日志记录并提供日志文件。您不应该使用它sc来安装 Topshelf 服务。那将失败。

于 2013-09-19T13:57:06.327 回答