Сокращение вывода скрипта - PullRequest
0 голосов
/ 05 октября 2018

У меня есть скрипт, который будет сообщать о журнале событий Windows и отправлять сообщение о событии по электронной почте.проблема в том, что в сообщении может быть много деталей, что означает, что электронная почта перегружена ерундой.То, что я хотел бы сделать, это взять фрагмент, например, первые 10 слов сообщения .. (красный цвет переднего плана также не работает в электронной почте)

Обновление Код нижеработает, чтобы разбить все на новую строку, но кажется, что $ event.message возвращает первый журнал в журнале событий, а не сообщение об ошибке в операторе if;

 $body += Write-Output "Server $server has an error: " $($event.Message -split '\n')[0]  `n 

Что касаетсяHTML, если бы я поместил тело HTML в начало и конец кода, где в выражении foreach было бы форматирование?

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

    if ($event.Source.Contains("Ntfs") -or $event.Source.Contains("DistributedCOM")) {  
        $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"
    }

Ответы [ 2 ]

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

Я предполагаю, что вы уже разбиваете $event.Message на новой строке, что это многострочное сообщение.

Вы можете выбрать только первую строку этого сообщения с небольшим изменением вашего кода:

Write-Output "Server $server has an error:" ($event.Message -split '\n')[0]
0 голосов
/ 05 октября 2018

Изменить

$event.Message -split '\n'

на

($event.Message | Out-String) -replace '^((?:\s*\S+){1,10}).*', '$1'

И -ForegroundColor Red нигде не будет работать, потому что а) Write-Output не имеет такого параметра, и б) обычный e-почта не поддерживает цвет в первую очередь (для этого вам понадобится электронная почта HTML).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...