Topshelf将用户名和密码传递给配置

时间:2017-04-12 08:22:26

标签: install topshelf

我正在努力的一件事是使用用户名和密码注册服务。

我可以硬编码RunAs方法的用户名和密码并注册服务,但显然不实用。

如果我

myservice.exe install start -username:Domain\username -password:itsAsecret

myservice.exe install start -username "Domain\username" -password "itsAsecret"

服务注册并开始在本地系统下运行。

如何将用户名和密码传递给:

configure.RunAs(username, password)

方法

为了解决这个问题,我已经解析了我自己的命令 然后我可以:

if (commandlineParameters.ContainsKey("username") && commandlineParameters.ContainsKey("password"))
    configure.RunAs(commandlineParameters["username"], commandlineParameters["password"]); 
else
    configure.RunAsLocalSystem();

但我觉得这应该有效:

 configure.ApplyCommandLine(string.Join(" ", args));

或只是

 configure.ApplyCommandLine();

但是当我这样做时,服务被注册为本地系统

1 个答案:

答案 0 :(得分:2)

似乎问题是安装时命令“start”。

所以,要安装和启动服务,它需要是两个单独的命令。

myservice.exe install -username:Domain\username -password:itsAsecret
myservice.exe start

这意味着我可以摆脱我添加的解析代码,只需

configure.ApplyCommandLine();