从Powershell运行NServiceBusHost.exe

时间:2012-10-12 21:49:02

标签: powershell windows-services nservicebus

您好我有一个powershell脚本来停止集群管理器中的服务,卸载服务,重新安装服务,并从集群管理器启动服务。 NServiceBus.Host.exe用于卸载并重新安装该服务。我遇到了安装问题。该服务已成功安装,但即使我将“/ startManually”作为参数发送,该服务也始终为自动启动类型。其次,在安装时,我收到登录失败的用户sql错误,指出userName是本地计算机名称,即使我指定要使用的服务的用户名和密码。下面是我安装服务的代码行。任何帮助都将是一种祝福。

& "NServiceBus.Host.exe" ("/install", "/startManually", "/serviceName:$ServiceName", "/displayName:$ServiceName", "/username:$ServiceUserName", "/password:$ServicePassword") > tmp.txt

1 个答案:

答案 0 :(得分:1)

我通常建议使用Start-Process cmdlet从PowerShell启动进程。这使得启动过程的整个过程(无双关语)更容易进行故障排除。

您可以将命令行参数构建到变量中,并将结果变量传递给-ArgumentList参数。

$Arguments = '/install /startManually /serviceName:{0} /displayName:{0} /username:{1} /password:{2}' -f $ServiceName, $ServiceUserName, $ServicePassword)
$nServiceBus = Resolve-Path -Path nServiceBus.Host.exe;

Write-Host -Object ('Argument string is: {0}' -f $Arguments);
Write-Host -Object ('Path to nServiceBus.Host.exe is: {0}' -f $nServiceBus);
Start-Process -Wait -NoNewWindow -FilePath $nServiceBus -ArgumentList $Arguments -RedirectStandardOutput tmp.txt;

希望这有帮助。