0
私はこのスクリプトを使用してCSVを取得し、サーバにpingを送信し、自分のステータスを伝えてから到達不能なものについて私に電子メールを送ります。下のスクリプトは素晴らしいですが、私が変更したいのは、到達不能なサーバーごとに複数の電子メールを受信するのではなく、pingを完了した後に到達不能なすべてのサーバーを含む1つの電子メールだけです。1つの電子メールでそれらをすべて守る
私はこの問題の一部が、私がIFの中に電子メールの行を持っていることを知っています。だから、私は変数を作成して新しい行を作ることを考えていましたが、そのように見えるように助けが必要です。
何か助けや助言をいただければ幸いです。私はマイクロソフトのスクリプトページを見てみて、やってみた。
$hostnamestxt = "C:\Scripts\printers.csv"
$servers = Import-Csv "$hostnamestxt"
$date = get-date
foreach($server in $servers) {
$serverName = $server.Name
$serverAddress = $server.IP
if (test-Connection -ComputerName $serverAddress -Count 2 -Quiet)
{
write-host "$serverName is ONLINE" -foregroundcolor black -backgroundcolor green
}
else
{
write-host "$serverName, $serverAddress is OFFLINE/UNREACHABLE" -foregroundcolor black -backgroundcolor red
Send-MailMessage -Body "$serverName, $serverAddress is OFFLINE/UNREACHABLE at $date" -From "emailaddress" -Subject "$serverName, $serverAddress is OFFLINE/UNREACHABLE at $date" -To "emailaddress" -SmtpServer "emailaddress"
}
}
最後の '}'の後に 'Send-MailMessage'コマンドを移動する必要があります。そうしないと、サーバごとに1つのメールが残り、各メールは(最初の電子メールに1台、2台目に2台など) – TheMadTechnician
良いキャッチ、悪い編集 –
Thanks Tyler works great。 TheMadTechの良いキャッチ。ちょっとしたことだけを並べてリストアップしていて、プリンタ名を区別するのは難しいかもしれません。 – ManNamedDan