Мониторинг окон даже лог - PullRequest
       1

Мониторинг окон даже лог

0 голосов
/ 10 октября 2018

В настоящее время мой сценарий просматривает журналы событий для записи с помощью HP Smart Array, а затем отправляет сообщение электронной почты с сообщением.Проблема заключается в том, что если он обнаруживает запись в журнале событий, соответствующую этому описанию, он затем возвращает сообщение из первого события в журнале, которое обычно не имеет значения.Может кто-нибудь подсказать, как сделать сообщение сообщением, найденным для HP Smart array?

foreach ($server in $servers) {
    $event = Get-EventLog -ComputerName $server -LogName "system" -Newest 200

    if ($event.Source.Contains("HP Smart Array") -or $event.Source.Contains("disk")) {
        $body += Write-Output "Server $server has an error: " $($event.Message -split '\n')[0]  `n
    } else { 
        $body += Write-Output "Server $server has nothing to report           `n"
    }     
}

1 Ответ

0 голосов
/ 10 октября 2018

Проблема в вашем состоянии.Он будет проверяться до совпадения первой записи.Вы должны пройти через все ваши события.Измените свой код на:

foreach ($server in $servers) {
    $events = Get-EventLog -ComputerName $server -LogName "system" -Newest 200

    foreach ($event in $events) {
        if ($event.Source.Contains("HP Smart Array") -or $event.Source.Contains("disk")) {
            $Message += Write-Output "Server $server has an error: " $($event.Message -split '\n')[0]  `n
        }  
    }
    if ($null -eq $Message) {
        $Message = Write-Output "Server $server has nothing to report           `n"
    }
    $body += $Message   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...