У меня есть этот скрипт, который берет CSV и серверы ping и сообщает мне свой статус, а затем отправляет мне электронное письмо на те, которые недоступны. Сценарий «Ниже» отлично работает, но единственное, что я хотел бы изменить, - это вместо того, чтобы получать несколько сообщений электронной почты на один недоступный сервер. Я получаю одно электронное письмо, содержащее все серверы, недоступные после того, как он завершил пингование.Один адрес электронной почты для их правильности
Я знаю, что часть проблемы в том, что у меня есть линия электронной почты внутри IF, Else. Поэтому я думал о создании переменной и создании новой строки, но мне нужна помощь, чтобы посмотреть, как это выглядит.
Любая помощь или совет будут оценены. Я пробовал посмотреть на страницу сценария Microsoft и googling.
$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' после последнего закрытия' '} в противном случае он получает еще один адрес электронной почты на сервер вниз, и каждое письмо будет включают в себя растущий список серверов вниз (один сервер в первом письме, два сервера во втором и т. д.) – TheMadTechnician
Хороший улов, Ill сейчас редактируется –
Спасибо, Тайлер отлично работает. Хороший улов от TheMadTech. Только лакомый кусочек - это перечисление их один за другим, а с именами принтеров его трудно отличить. – ManNamedDan