Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell获取服务状态未按计划任务工作_Powershell_Scheduled Tasks_Server Administration - Fatal编程技术网

Powershell获取服务状态未按计划任务工作

Powershell获取服务状态未按计划任务工作,powershell,scheduled-tasks,server-administration,Powershell,Scheduled Tasks,Server Administration,我将下面的代码作为一个函数来运行,以遍历服务器列表,检查服务是否正在运行。这在手动运行时有效。从计划任务运行时,代码$arrService.Status将转换为服务名称。我甚至尝试了类似于Get Service-Computer$Server-display$ServiceName | Select-expandproperty Status的方法,但它返回空字符串或无值 知道为什么从计划任务运行时status属性不起作用吗 function CheckService{ param($

我将下面的代码作为一个函数来运行,以遍历服务器列表,检查服务是否正在运行。这在手动运行时有效。从计划任务运行时,代码
$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
     }
}

多亏了@djs,我找到了一个解决方案,尽管不是一个很好的解决方案。将帐户添加到每个服务器的admin组中可以执行命令。在我们的例子中,这不是一个问题,所以我们将使用这个解决方案

我怀疑你遇到了权限问题。尝试启动与计划任务以同一用户身份运行的PowerShell会话。您仍然能够检查服务的状态吗?我无法使用我使用的帐户凭据登录到服务器,但我确实为计划任务输入了NT登录凭据,当然这确实有效。奇怪的是,帐户有权运行命令,但不返回状态字段信息。下一个问题是需要什么权限才能获得状态,以便我可以考虑为帐户授予该权限。这将需要对许多服务器进行更新。在以不同用户身份运行powershell时找到链接[link]