В Windows Server 2008 (Vista) появился новый функционал, позволяющий привязать задание планировщика к любому событию в журналах системы. Благодаря этой возможности администратор может на любое событие Windows назначить выполнение определенного скрипта или отправку оповещения по электронной почты. Разберемся с этой возможностью подробнее.
Возможность запуска задач при наступлении определенных событий Windows основана на тесной интеграции Task Scheduler и Event Viewer. Назначить задание планировщика на любое событие Windows можно прямо из консоли журнала просмотр события (Event Viewer). В качестве реакции на произошедшее событие планировщик может запустить скрипт или отправить почтовое уведомление администратору (или любому другому пользователю).
Допустим, наша задача – настроить оповестить администратора безопасности о блокировке учетной записи пользователя в Active Directory.
Событие блокировки учетной записи в AD отмечается на контроллере домена в журнале Security (Безопасность). Event ID события блокировки – 4740. Открываем консоль журнала событий Windows (Event Viewer — eventvwr.msc) и ищем интересующее нас событие. Щелкаем по нему ПКМ и выбираем пункт Attach Task To This Event (Прикрепить задачу к этому событию).
Запускается мастер создания нового задания планировщика. Мастер предложит указать имя задания. Оно генерируется автоматически — Security_Microsoft-Windows-Security-Auditing_4740 и нас устраивает.
На следующем шаге указаны вид журнала событий, источник и Event ID события (все поля заполняются автоматически и не доступны для редактирования на этом шаге).
Далее предлагается выбрать тип реакции на событие. Возможны следующие варианты:
- Start a program – запуск программы (скрипта)
- Send an e-mail – отправка почтового уведомления
- Display a message – отображение сообщения в консоли
Нас интересует оповещение по Email. Указываем отправителя, получателя, адрес SMTP сервера, тему и текст письма.
На последнем шаге мастера можно посмотреть получившиеся настройки триггера. В результате в планировщике задач появится новое задание, привязанное к нашему событию. Откроем консоль Task Scheduler (в Administrative Tools). Созданное задание можно найти в разделе Task Scheduler Library -> Event Viewer Tasks.
Здесь же можно изменить настройки триггера события и принудительно его запустить, протестировав реакцию на событие.
Триггер является активным. Теперь при блокировке любой учетной записи AD – на указанный email будет отправляться письмо с уведомлением.
Примечание. Аналогичный функционал в Windows Server 2003 и более ранних версиях Windows реализовывался с помощью консольной утилиты — eventtriggers.exe. Данная утилита также позволяла отслеживать события в журналах системы и «вешать» на определенные события триггеры. Для нашего пример, когда к событию 4740 нужно привязать выполнение скрипта vbs или powershell, который отправляет письмо на ящик администратора, команда может быть такой:
eventtriggers /create /TR “Lock Account” /TK “C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe c:\script\SendEmail.ps1″ /L Security /EID 4740
Такое уведомление не очень информативно, и для просмотра подробной информации о событии приходится открывать журнал Event Viewer. Попробуем прикрепить к письму данные из журнала событий. В этом нам поможет утилита wevtutil, позволяющая выгрузить из журналов Windows информацию о любом событии. Так, чтобы получить данные о последнем событии с кодом 4740 из журнала Security, нужно выполнить:
wevtutil qe Security /q:"*[System[(EventID=4740)]]" /f:text /rd:true /c:1
Создадим скрипт (query.cmd) из двух строчек: первая удаляет старый файл с логом, вторая – выгружает из журнала последнее событие и сохраняет его в файл лога:
del c:\script\query.txt
wevtutil qe Security /q:"*[System[(EventID=4740)]]" /f:text /rd:true /c:1 > c:\script\query.txt
Осталось еще раз открыть настройки созданного ранее триггера в журнале планировщика задач. На вкладке Actions добавим новое действие – запуск скрипта query.cmd. Затем нужно изменить порядок выполнения действий, перенесем его вверх списка с помощью стрелок справа (скрипт должен выполняться первым).
Далее отредактируем второе действие – отправку электронного письма, выбрав в качестве вложения к письму файл c:\script\query.txt .

Протестируем задание еще раз. Теперь на почту администратора будет приходить уведомление со вложением, в котором указан данные о имени заблокированной учетной записи, времени блокировке и другой полезной информацией.
Привязка заданий планировщика к событиям в журналах систем работает во всех версиях Windows, начиная с Windows Server 2008 / Vista. Этот функционал позволяет быстро оповестить администратора о возникновении определенных проблем с серверов и отреагировать на них.
Интересно. Говорят, в 2012 сервере отправка по почте уже не работает.
Отправка писем работает и в Windows 2012 R2, но у этой функции стоит пометка: Send an e-mail (deprecated). Это означает, что этот функционал поддерживается, но в следующих версиях WIndows его скорее всего уберут.
Для отправки писем рекомендуется использовать командлет PowerShell 3.0 — Send-MailMessage.
Так как всё же реализовать это в Server 2012r2? В конце создания задания появляется окно с ошибкой «Использование задачи использует не рекомендуемый компонент.»
Так как всё же реализовать это в Server 2012r2? В конце создания задания появляется окно с ошибкой «Использование задачи использует не рекомендуемый компонент.»
Вы правы, действительно функционал отправки писем и консольного сообщения в Windows 8.1 / Server 2012 / R2 не поддерживается, хотя эти опции из мастера создания задания не убрали. Эх, Microsoft…
Похоже для отправки почты придется использовать Poweerhell или любой другой скрипт .
спасибо (не знал о данной встроенной утилите. полезно)
подскажите пожалуйста а что нужно сделать до создания задачи, как настроить smtp на server 2008 r2
Парни, а есть у кого нибудь готовый скрипт, для описанной в статье задачи, для отправки сообщений на почту при изменении состава группы. в 2012r2 не хочет работать уведомление из журнала событий
Код события добавления в группу 4728 ( A member was added to a security-enabled universal group.) — логируется в журнале Security на DC. Политика Audit account management должна быть включена.
Посмотрите руками, есть ли такие события в журнале, если есть — по данной статье привяжите к нему триггер на отправку почты.
Политика аудита включена, журнал создан, события есть. Пытаюсь настроить триггер и при нажатии «Готово» ошибка: Определение задачи использует не рекомендованный элемент
Русский язык исключил. win server 2012r2 активирована лицензией. Поле вложение только пустое
Как я понял, у вас триггер срабатывает, но письмо не отправляется?
Возможно дело в том, что функция отправки писем из задания в 2012 R2 считается DDeprecared…
Скорее всего придется триггером запускать файл PS1, из которого будет осуществлятся отправка…
itpro, действие не создается, при нажатии на кнопку ГОТОВО появляется ошибка (см. выше) и все. Можно только назад и отмена нажать. У меня при создании триггера пункт Отправка по эл. почте и в скобках (не рекомендуется). Может убрали какой то функционал? Могу видео сбросить. Винда версии 6.3 сборка 9600.
Может можно это сделать не из веб интерфейса, а из командной строки?