У меня есть следующий код (благодаря вводу 'jon Z' и 'manojlds'), который обрабатывает списки серверов, проверяет журналы ошибок для каждого сервера по строке поиска, а затем отправляет отчет по электронной почте, в котором перечислены серверы с ошибками.Журналы ошибок и хорошие журналы ошибок.
Я хотел бы сейчас сделать подсчет числа серверов с плохими журналами ошибок и хорошими журналами ошибок и поместить эту информацию в электронное письмо.отчет также.
У меня было бы что-то подобное в каждом заголовке моего почтового отчета:
Следующие n серверы имеют ошибочные журналы ошибок:
Следующие n серверы в порядке:
Я пытался сделать это с помощью метода Count
, но имеюдо сих пор не удалось.Является ли метод Count
правильным подходом?Это так, как (где бы я применил это в моем коде)?Если нет, то какой подход лучше?
Код:
$BadServerLogs = "<font style=`"font-family:verdana;font-size:9pt`"><p><b>The following servers have bad error logs:</b></p>"
$GoodServerLogs = "<font style=`"font-family:verdana;font-size:9pt`"><p><b>The following servers are OK:</b></p>"
# Use hash table to associate server list to search string array
$Groups = @{
$SERVER_LST_1=$SEARCH_STR_ARRAY_1;
$SERVER_LST_2=$SEARCH_STR_ARRAY_2;
$SERVER_LST_3=$SEARCH_STR_ARRAY_3;
$SERVER_LST_4=$SEARCH_STR_ARRAY_4;
}
$StartupErrors = @{}
$Groups.keys | %{
$key = $_
gc $key | %{
# Check StartupError.log files for errors
$StartupErrors[$_] = Get-ChildItem -Path \\$_\$LOG_PATH -Include StartupError.log -Recurse | Select-String -notmatch $Groups["$key"]
If ($StartupErrors[$_])
{
$Subject = "StartupError Logs Report: BAD ERROR LOGS!"
$BadServerLogs += "<li><a href=`"\\$_\$LOG_PATH\StartupError.log`">$_</a></li>"
}
Else
{
$Subject = "StartupError Logs Report: All Logs are Fine"
$GoodServerLogs += "<li>$_</li>"
}
}
}
# Send email listing servers with bad/good StartupError log files
Send-MailMessage -Body "$BadServerLogs $GoodServerLogs" -BodyAsHtml -Subject $Subject -SmtpServer $SmtpServer -To $MailTo -From $MailFrom
Заранее спасибо!-Keith