Показать сообщение отдельно
Старый 12.04.2011, 13:24     # 1
Plague
Administrator
 
Аватар для Plague
 
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042

Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Уведомление о перезагрузке Windows на email/СМС

Присказка: Произошла тут на выходных неприятность одна: комп на работе ребутнулся (энергетики постарались, козлы: даже ИБП не спас ). В результате некоторые вещи пол-воскресенья работали не совсем так как надо было. Проблемы зайти по удаленному управлению нет, и делов там - три пимпы ткнуть. Проблема в том, что в общем-то, никто не обязан круглые сутки мониторить: чего там у тебя на работе происходит, согласитесь?
Сказка: И озадачился я вчера на тему написания какого-нить скриптика, который при перезагрузке стучал бы о данном происшествии.
СМС-шлюзы для частников у мобильных провайдеров когда-то были, но уже давным-давно закрыты, так что всяческие софтины для "халявной отправки СМС" - в лучшем случае не будут работать. В худшем - запустят втихаря в работу на вашей машине что-нить совершенно левое, и к отправке СМС не имеющее никакого отношения.

В природе существует консольная утилитка со смешным названием blat
Так же, нам понадобится утиль sleep.exe из Windows Server 2003 Resource Kit Tools. Смешно конечно ради одного екзешника весом в 5кб тянуть и ставить кирпич на 11ть метров, но для "ставить" - есть виртуалка, да и помимо sleep там много чего полезного есть, что можно заархивировать и припрятать - мало ли, понадобится... Кроме того, вроде мне Борланд говорил что на Висте и Семерке Про и выше есть что-то своё с аналогичными функциями (не помню, сам допишет может быть).

Итак, качаем blat, распаковываем, к нему же кидаем sleep.exe.
там же создаем небольшой скриптик blat.cmd
Код:
@echo off
set blatdir=c:\SystemTools\mailreport
set smtpsender=от_кого@сервер.ru
set smtpserver=smtp.сервер.ru
set smtpport=25
set smtpuser=от_кого
set smtppwd="пароль_исходящего_ящика"
set mailto=кому@сервер.ru
set blatsubj="%COMPUTERNAME% ALERT"
set blatbody="%COMPUTERNAME% Rebooted!!"

"%blatdir%\sleep.exe" 600
"%blatdir%\blat.exe" -to %mailto% -f %smtpsender% -server %smtpserver% -port %smtpport% -pu %smtpuser% -ppw %smtppwd% -subject %blatsubj% -body %blatbody%
несколько комментариев:
  • set blatdir=c:\SystemTools\mailreport - Путь к blat.exe и sleep.exe заменить на свой
  • set smtpserver - некоторые шибко умные провайдеры (мой в том числе) блочат 25 порт, требуя использования своих mx-серверов. Просто на всякий случай напоминаю. Вчера полчаса убил пытаясь понять почему не работает, пока не вспомнил про это.
  • %COMPUTERNAME% - глобальная переменная винды. подставит имя компа.
  • ключи -pu и -ppw в команде - если ваш мыл-сервер требует pop3 аутентификацию. В случае AUTH используем -u и -pw; в случае IMAP - -iu и -ipw соответственно.
  • для чего нужен sleep: Обычно компы перегружаются при бросках электричества. В этом случае, как правило, перегружается и коммуникационное оборудование. Другими словами, интернета может просто не быть еще на тот момент когда комп загрузится. Да и различные сетевые сервисы тоже очень желательно подождать пока прогрузятся на машине, прежде чем в сеть долбиться. В моём скрипте установлено ожидание 600 секунд.

Итак, скрипт есть.
Теперь идем в панель управления - назначенные задания и давим там на "Добавить". Далее - "Обзор" - показываем наш скрипт, после чего выбираем "при загрузке компьютера"; в следующем окне пишем что задание должно выполняться от Администратора, вводим его пасс; ставим галку "установить дополнительные параметры после нажатия готово".
В свойствах задания, в строке "выполнить" перед путём до скрипта дописываем c:\Windows\System32\cmd.exe /c
Код:
c:\Windows\System32\cmd.exe /c c:\SystemTools\mailreport\blat.cmd
Проверяем..
Совет: для проверок - значение "600" в строке запуска sleep.exe лучше придавить до 10ти, а то упаритесь ждать

Если есть необходимость получать СМС о данном событии - регим ящик получателя на мыл-сервисах умеющих отправлять СМС о получении нового письма. mail.ru умеет точно: проверял. Гугль, зараза, не умеет .
Так же есть некие сложности с использованием gmail в качестве ящика отправителя: blat не умеет работать с серверами, требующими ssl. Варианты обхода существуют (stunnel), но это лишняя "клюква" на машине, да и не проверял я.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!!
~~~~~~~~~~~~~~~~~~~~~~

The time has come it is quite clear, our antichrist is almost already here.
M.M.

Последний раз редактировалось Plague; 12.04.2011 в 15:42. Причина: поправил недочет по подсказке Борланда
Plague вне форума