Отправка почты
Возникла задача написания скрипта для системы мониторинга, который бы в случае наступления некого события отправлял почтовое сообщение ответственному лицу. Так как в последнее время все чаще приходится использовать скрипты на 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 работать не будут.
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.