С помощью обычного скрипта VBS можно спокойно отправлять электронную почту, что я уже давно использую в своих скриптах, таких как Автоматическая проверка оставшегося места на диске, Адапптированный скрипт автоматического избавления от устаревших архивов, Скрипт автоматически выкидывающий пользователей из терминальной сессии. Часть 2я и другие. Но в данной статье я хочу акцентировать внимание, что даже простая отправка почты нам может пригодиться в администрировании.
Самый простой пример - с помощью почты можно отправить привет от сервера админу словами, что сервер был успешно включен, а админ уже должен сам подумать и проверить, а почему это у него этот сервер ему шлёт такой привет. Самый простой вариант - непредвиденное отключение электричества. В моём случае это частый случай, так как в одном из моих филиалов с постоянной периодичностью происходит непредвиденное отключение электроэнергии и теперь я всегда знаю, когда у них снова всё завелось.
Самое главное. Для того, чтобы можно было отправлять почту с помощью скрипта, необходимо иметь действующую почту на любом почтовом хостинге или сервере.
Вот он сам скрипт. Он очень простой по сравнению с вышеупомянутыми.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Скрипт, который умеет отправлять электронную почту '
' Скрипт написал Анчуров Олег Владимирович в 2015 году. Версия 1. '
' Скрипт ServerPowerIsOn.vbs '
' Сайт http://ithelp.moy.su '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
on error resume next
Dim nwo, cmpname
Set nwo = CreateObject("WScript.Network")
CmpName = LCase(nwo.ComputerName)
Dim objEmail, MSG
MSG = "Сервер " + CmpName + " был автоматически включен!" + chr(13) + chr(10) + chr(13) + chr(10)
MSG = MSG + "Сервер " + CmpName + " был автоматически включен! " + chr(13) + chr(10)
MSG = MSG + "Возможные причины останова сервера:" + chr(13) + chr(10)
MSG = MSG + "1. Был выключен и включен (или перезагружен) человеком." + chr(13) + chr(10)
MSG = MSG + "2. Был программный сбой." + chr(13) + chr(10)
MSG = MSG + "3. Был сбой электропитания." + chr(13) + chr(10)
MSG = MSG + "Для выяснения данного инцидента необходимодимо просмотреть логи событий..." + chr(13) + chr(10) + chr(13) + chr(10)
MSG = MSG + "Время/Дата формирования сообщения отчёта: " + CStr(Time) + "/" + CStr(Date) + chr(13) + chr(10)
Const EmailFrom = "bot@superpuperfirma.ru" ' от кого будет отправляться e-mail
Const EmailPassword = "SuperPuperPassword" ' пароль от e-mail отправителя
Const strSmtpServer = "smtp.superpuperfirma.ru" ' smtp сервер
Const EmailTo = "admin@superpuperfirma.ru" ' Кому будет отправляться e-mail
Set objEmail = CreateObject("CDO.Message")
objEmail.From = EmailFrom
objEmail.To = EmailTo
objEmail.Subject = "Сообщение от сервера " + CmpName + ": сервер был автоматически включен!" ' Тема письма
objEmail.Textbody = MSG
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = EmailFrom
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = EmailPassword
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmtpServer
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
Set objEmail = Nothing ' Чистим память.
Set nwo = Nothing ' Чистим память.
Единственное что я в этот скрипт добавил от себя - это определение имени компьютера/сервера, поэтому этот скрипт можно без какой-либо адаптации смело использовать для своих нужд.
И самое главное. Если всё же захотите использовать его как оповещатель включения сервера, то Вам также придётся создать задание с триггером "при включении компьютера".
Жизнь админа должна быть проще! |