使用Topshelf安装后无法在服务下看到我的服务

时间:2013-09-19 11:25:41

标签: windows powershell service install topshelf

我很确定答案很简单,但现在却是;

我正在使用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

所以我被困在这里。我在这里缺少什么?

2 个答案:

答案 0 :(得分:22)

PowerShell中的

scset-Content cmdlet使用sc.exe的别名。

试试这个(未经测试)

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

答案 1 :(得分:2)

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