function printInfo(){ "restarted!" } get-service iisAdmin | where-object {$_.Status -eq "Stopped"} | restart-service | printInfo
本意是当 iisAdmin 这个服务为停止状态时, 则重启这个服务, 并输出已重启的信息, 但现在是每次都会重启, 哪怕这个服务不是停止状态。
要如何处理, 才能只在停止状态才重启服务呢?
1 Answers
$iisAdmin = Get-Service iisAdmin if(($iisAdmin -and ($iisAdmin.Status.ToString() -eq 'Stopped'))){ $iisAdmin | Restart-Service Write-Host 'restarted!' }
谢谢您的热心帮助,可以解释一下我的代码为什么不行么?
谢谢您的热心帮助,可以解释一下我的代码为什么不行么?
你应该尝试下get-service iisAdmin | where-object {$_.Status -eq “Stopped”} 这个字句能不能正确运行
get-service iisAdmin | where-object {$_.Status -eq “Stopped”} | restart-service
传递给最后一个管道的对象是servicecontroller
restart-service 可以直接操作 这个对象而不关心iisadmin服务的当前状态。
话说你条件判断就这么懒不写个 if?
正解