Какой рейтинг вас больше интересует?
|
Windows scripting: отправка электронной почты2008-08-19 04:47:00 (читать в оригинале)К сожалению, в реальной жизни системному администратору приходится работать не только с unix-подобными системами. Иногда нужно решать задачи системного администрирования на плохо приспособленных и слабодокументированных операционных системах семейства windows. О таких хорошо зарекомендовавших себя инструментах как bash, perl или даже простой grep говорить не приходится. Что же мы имеем в наличии? Фактически имеется технология Windows Script Host с возможностью писать скрипты на языках JScript и VBScript. Мда, ну и выбор... и чтобы усугубить глубину собственного падения далее будем использовать язык VBScript. Задача. Довольно часто встречается ситуация, когда скрипт должен уведомить администратора по электронной почте о наступлении какого-либо события или ситуации. Для примера напишем скрипт, посылающий уведомление о загрузке windows сервера. Теория. Составной частью оперционных систем windows 2000/xp/2003 является динамическая библиотека сdosys.dll. Эта библиотека выдрана из почтового сервера MS Exchange и её функциональность сильно урезана. Тем не менее, с ее помощью можно сформировать сообщение электронной почты и отправить его внешнему почтовому серверу (MTA). Называется это счастье «CDO for Windows 2000», по ссылке доступна подробная документация из MSDN. Решение. Исходный код скрипта email_notify.vbs: Set email = CreateObject("CDO.Message") With email.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _ = "mail.localnet" .Update End With email.From = "robot@mycompany.ru" email.To = "admins@mycompany.ru" Set wshNetwork = WScript.CreateObject("WScript.Network") email.Subject = wshNetwork.ComputerName & " включен" email.Textbody = "" email.TextBodyPart.charset = "koi8-r" email.Send Надеюсь, вам не составит труда пробится через синтаксис VBScript. Сам скрипт короткий и достаточно прозрачный для понимания. В основном используются методы объекта CDO.Message, они документированы по приведенной выше ссылке. Конечно, по сравнению с linux реализацией той же функциональности: echo "" | mailx -s "`hostname` is up" admins@mycompany.ru мы получили монстроподобного уродца, но тут уж ничего не поделаешь, такова участь несчастных администраторов windows. На этом собственно задача отправки электронных писем из windows скриптов решена. По двойному клику на файле email_notify.vbs скрипт выполнится. Однако, нам еще осталось рассмотреть тонкий момент запуска скрипта при загрузке операционной системы. Ярлык на такой скрипт нельзя помещать в меню «Startup» («Автозагрузка»). Ведь такие ярлыки обрабатываются не при загрузке операционной системы, а при начале сеанса конкретного пользователя. По той же причине не подходят и прочие места автозапуска, которые в большом количестве могут быть обнаружены на просторах реестра windows. Некорректно такой скрипт запускать и как системную службу. Вот правильное решение:
Выводы. Не смотря на то, что вам придется писать уродливые скрипты на бейсике, а также не помешают навыки скоростного кликанья мышкой, операционная система windows худо-бедно поддается автоматизации системного администрирования.
|
Категория «Фотографы»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.