我很确定答案很简单,但现在却是;
我正在使用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
所以我被困在这里。我在这里缺少什么?
答案 0 :(得分:22)
sc
是set-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服务。那会失败。