我在下面运行这段代码,作为一个函数来遍历服务器列表,以检查服务是否正在运行。这在手动运行时有效。当从计划任务运行时,代码$arrService.Status
转换为服务名称。我甚至尝试过类似Get-Service -Computer $Server -display $ServiceName | Select -expandproperty Status
的东西,但它返回空字符串或没有值。
知道从计划任务运行时状态属性为什么不起作用吗?
function CheckService{
param($Server, $ServiceName)
$arrService = Get-Service -Computer $Server -display $ServiceName
if ($arrService.Status -ne "Running"){
Start-Service -InputObject $ServerService
}
}
多亏了@djs,我找到了一个解决方案,尽管不是一个神奇的解决方案。将帐户添加到每台服务器的管理组中可以执行命令。在我们的情况下,这不是问题,所以我们将采用这个解决方案。