PDA

Показать полную графическую версию : Если пинг не идет тогда сообщить по ел.почте


Ua-life
03-07-2014, 21:20
Привет. не могу разобраться каким образом сравнять массивы.
и так
$ping = ping add.no-ip.biz; $result = ping add.no-ip.biz ; $ping;$result
далее ну никак
if ($result[0] --eq $ping[0]) {echo 'Есть связь'} else {echo 'Нет связи'}
не могу сравнить, что бы если данные одинаковы то могу ничего не делать, а если нет то другие действия (в дальнейшем отправка ел. почты)

Ua-life
03-07-2014, 21:41
а если if (Compare-Object $result $ping) {echo 'yes'} else {echo 'no'} то все ровно есть изменения хотя вроде однаковые результаты

Iska
04-07-2014, 02:22
Что значит:
сравнять массивы »
? Опишите словами, что требуется. Не как Вы решаете, а саму задачу.

Ua-life
04-07-2014, 08:20
))
Хочу в файлик повершел написать процедуру, которая пингует определенный айпи адрес, если пинг проходит значит можно приостановить скрипт, а если не проходит то отправляем сообщение по електронной почте, что связи нет с айпи адресом

этот файлик я буду запускать с помощью планировщика заданий через определенной время

Kazun
04-07-2014, 08:44
if(!(Test-Connection ya.ru -Quiet)) {
Send-MailMessage -To "User01 <user01@example.com>" -From "User02 <user02@example.com>" -Subject "PING FAIL!!!" -SmtpServer smtp.fabrikam.com
}

milligan
04-07-2014, 09:35
if(!(Test-Connection ya.ru -Quiet)) {
Send-MailMessage -To "User01 <user01@example.com>" -From "User02 <user02@example.com>" -Subject "PING FAIL!!!" -SmtpServer smtp.fabrikam.com
}

перед Send-MailMessage разве не нужно указать SMTP сервер?
$PSEmailServer = "FQDN"

Kazun
04-07-2014, 09:40
Не нужно, т.к. указан параметр -SmtpServer smtp.fabrikam.com

Ua-life
04-07-2014, 18:47
ту такие дела, что провайдер блокирует 25 порт у меня, а smtp сервера требуют tls, то как быть в данном случаи?!

и не могу понять что значит второй User02 ? Копия типа?

Ua-life
05-07-2014, 10:46
спасибо большое за наводку, сделал немного по другому, проверка доступен ли адрес оставил, а вот последующую отправку почты с сообщение сделал вот http://copyraite.blogspot.com/2013/09/blog-post.html так
в итоге получилось что если недоступный то будет вызываться скрипт с blat, что по ссылке, спасибо

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

Ua-life
05-07-2014, 11:09
-Port но что то не получается указать с разными ошибками, приведите пример будьте добры

Iska
05-07-2014, 11:42
Ua-life, зачем Вам «Blat.exe» при возможности использовать в PoSH как собственный командлет «Send-MailMessage», так и CDO?!

Sending E-mail via Powershell script - Techniatures - Site Home - TechNet Blogs (http://blogs.technet.com/b/techniatures/archive/2012/08/13/sending-e-mail-via-powershell-script.aspx)

Ua-life
05-07-2014, 11:56
зачем Вам » так вот и я думаю зачем )) на быструю руку сделал так, а сейчас разбираюсь как с повершел

Ua-life
05-07-2014, 12:15
вышло таким образом $PSEmailServer = "smtp..ru"
if(!(Test-Connection .no-ip.biz -Quiet)) {
Send-MailMessage -From ".sklad@mail.ru" -To "@hotmail.com" -Subject "текст!" -Body "Address not available .no-ip.biz" -PORT "587"
}
спасибо мужики

кстати, а как скрыть появления повершел окна при вызове с планировщика?

а ладно, через свойства ярлыка попробую

Ua-life
05-07-2014, 12:33
тюю, а теперь при выполнении скрипта "Send-MailMessage : Неправильная последовательность команд."
да и + в планировщике не указать на ярлык задачи, а значит свойства ярлыка не помогут для скрытия команды выпонения

через секунду отправило письмо ... странно ...




© OSzone.net 2001-2012