サーバーリストを処理し、各サーバーのエラーログを検索文字列と照合してから、次のコードを送信します( 'jon Z'と 'manojlds'エラー・ログとエラー・ログが不良なサーバーをリストした電子メール・レポート。PowerShell - Countメソッドの使用に問題があります
私が今やりたいことは、エラーログとエラーログが悪いサーバーの数のうち、の数がであり、その情報を電子メールレポートにも入れてください。
私は私の電子メールレポートの各見出しにこのようなものを持っているでしょう:
次Nのサーバーが不正なエラーログを持っている:
次NサーバはOKです:
私は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
ありがとう!ループの増分に続いてそれぞれのケースに応じて
$goodCount = 0
$badCount = 0
:
どこにでも「カウント」は表示されませんか? – JNK
彼はどこに行こうかと尋ねていると思います...最初の2行はあなたがカウントを必要とする場所ですが、カウントはまだ分かりません。 – JohnL