我正在尝试使用PS脚本停止某些服务,但是我认为类型不正确。当脚本遍历数组时,它返回“方法调用失败,因为system.string不包含名为'WaitForStatus'的方法”。我需要确保服务已停止,然后再运行下一个脚本。
Foreach ($i in $services){
(get-service -ComputerName Server1 | Where {$_.name -eq "$i"}).stop()
$i.WaitForStatus('Stopped')
}
exit $LASTEXITCODE
答案 0 :(得分:0)
尽管您没有弄清楚$services
的定义/定义方式,但它似乎只是服务名称列表(错误状态为system.string
)。要使用WaitForStatus()
方法,您需要一个实际的服务对象(即System.ServiceProcess.ServiceController
)。这样的事情应该会更好:
$services |
ForEach-Object {
$service = Get-Service -Name $_
$service.Stop()
$service.WaitForStatus('Stopped')
}