我在下面运行此代码作为迭代服务器列表以检查服务是否正在运行的函数。这在手动运行时有效。从计划任务运行时,代码$arrService.Status
将转换为服务名称。我甚至试过类似Get-Service -Computer $Server -display $ServiceName | Select -expandproperty Status
的东西,但返回空字符串或没有值。
知道为什么status属性在从计划任务运行时不起作用?
function CheckService{
param($Server, $ServiceName)
$arrService = Get-Service -Computer $Server -display $ServiceName
if ($arrService.Status -ne "Running"){
Start-Service -InputObject $ServerService
}
}
答案 0 :(得分:0)
感谢@djs我能够找到解决方案,尽管不是一个很棒的解决方案。将帐户添加到每个服务器的管理组允许执行命令。在我们的例子中,这不是一个问题所以我们将采用这个解决方案。