【发布时间】:2016-05-20 03:59:46
【问题描述】:
我需要通过 Powershell 以“1”作为参数启动 Windows 服务,如下所示:
所以基本上我想用 powershell 做这样的事情:
Start-Service _MyService 1 <- won't work
谷歌搜索没有对此产生任何值得注意的信息,也许我正在寻找错误的东西,但我不敢相信这是不可能的。有线索吗?
【问题讨论】:
标签: powershell windows-services
我需要通过 Powershell 以“1”作为参数启动 Windows 服务,如下所示:
所以基本上我想用 powershell 做这样的事情:
Start-Service _MyService 1 <- won't work
谷歌搜索没有对此产生任何值得注意的信息,也许我正在寻找错误的东西,但我不敢相信这是不可能的。有线索吗?
【问题讨论】:
标签: powershell windows-services
另一种方法是使用 Get-Service cmdlet 获取服务控制器,然后调用其 Start() 方法。
# "ServiceName" != "Display Name"
$yourService = Get-Service "ServiceName"
$yourService.Start(1)
如果您需要提供多个参数(感谢@Mark):
$yourService.Start(@('arg1','arg2'))
【讨论】:
Start 调用中使用显式数组语法:$yourService.Start(@('arg1','arg2'))
您可以调用允许使用参数启动服务的 sc.exe:
Invoke-Expression "sc.exe start _MyService 1"
【讨论】:
Invoke-Expression 是不必要的。只需输入命令:sc.exe start servicename 1。