Отправка почты из PowerShell | Windows для системных администраторов

Отправка почты из PowerShell

Я уже рассказывал про то, как можно отправить почту из командной строки при помощи telnet. Теперь возникла задача написания скрипта для системы мониторинга, который бы в случае наступления некого события отправлял почтовое сообщение ответственному лицу.

Так как в последнее время все чаще приходится использовать  скрипты на PowerShell, то и скрипт отправки почты я решил реализовать именно на нем.  Этот небольшой скрипт PowerShell отправляет e-mail письмо определённому адресату, указанному в его коде. Данный скрипт используется в самописной системе мониторинга определенной не майкрософтовской службы, запущенной на Windows Server 2008. В случае, если служба остановиться, то в техподдержку тут же отправляется письмо с оповещением о проблеме. Мой PowerShell код выглядит следующим образом:

$EmailFrom = “server2008@winitpro.ru”
$EmailTo = “support@winitpro.ru”
$Subject = “Check service at your Windows Server 2008 NOW”
$Body = “Monitoring service is stop!!”
$SmtpServer = “smtp.winitpro.ru”
$smtp = New-Object net.mail.smtpclient($SmtpServer)
$smtp.Send($EmailFrom, $EmailTo, $Subject, $Body)

При использовании скриптов на PowerShell  есть ряд ограничений. По соображениям безопасности скрипт PowerShell нельзя запустить, просто дважды щелкнув по файлу с расширением.PS1.  Поэтому, если вы хотите запустить скрипт PowerShell   из планировщика заданий или еще каким-то автоматизированным способом, то можно создать скрипт VBS, который в свою очередь будет вызывать скрипт на PowerShell:

Set objShell = CreateObject(“WScript.Shell”)
objShell.Run(“powershell.exe c:\script\send_email.ps1>”)

В итоге у вас должны получится два файла: один содержит vbs код (расширение.VBS ), во втором находится PowerShell  код отправки почты (расширение .PS1 ).

В том случае, если вы используете Windows Server 2008, не забудьте включить функцию поддержки PowerShell, иначе скрипты PS работать не будут.
Мне пригодился код С++, позволяющий скрыть окно windows: How to Hide Another Person’s Window.

Еще записи по теме: PowerShell
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Есть 1 комментарий

Оставить комментарий
  1. Era | 02.10.2015

    А так не проще? И без VBS
    Send-MailMessage -From user@domain -To user_@domain_ -SmtpServer server_name(/ip) -Subject «Subject» -Body «text»;

    Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00112 sec