Мониторинг службы средствами powershell
Возникла необходимость проверить состояние службы. Обычный вариант services.msc не понравился, нет скажем автоматизации. В итоге решил использовать для этой задачи PowerShell.
Проверяем состояние службы средствами PowerShell, а именно вводим команду:
1 |
get-service wuauserv -computername pc-01 |
Можем произвести форматирование вывода:
1 |
get-service -computername pc-01 | where {$_.name -eq 'wuauserv'} | format-table Name,Status |
В итоге вышел вот такой скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$Date = Get-Date -DisplayHint DateTime $Logfile = "C:\log\services.txt" $Comp= "pc-01" $Services = "wuauserv" $Body = "services down -> " + $Date While ($true) { if(get-service $Services -computername $Comp | where {$_.status -eq 'Running'}) { Write-Host "Run"-ForegroundColor Green } else { Write-Host "Stop" -ForegroundColor Red Out-File -FilePath $Logfile -InputObject $Body -Append -encoding unicode } Start-Sleep -s 1800 } |
Start-Sleep используется для того, что бы не «замониторить» службу.