Припустимо, наша задача - налаштувати оповістити адміністратора безпеки про блокування облікового запису користувача в Active Directory.
Порада. Ми вибрали це події для наочності. Насправді спектр застосування цього функціоналу досить широкий. Це можуть бути, наприклад, оповіщення про зупинку певної служби Windows, запуск певної програми по завершенню резервного копіювання Exchange. оповіщення про зміну в групах безпеки Active Directory або зміни в певних папках або файлах і т.п.
Подія блокування облікового запису в AD відзначається на контролері домену в журналі Security (Безпека). Event ID події блокування - 4740. Відкриваємо консоль журналу подій Windows (Event Viewer - eventvwr.msc) і шукаємо цікавить нас. Клацаємо по ньому ПКМ і вибираємо пункт AttachTaskToThisEvent (Прикріпити завдання до цієї події).
Запускається майстер створення нового завдання планувальника. Майстер запропонує вказати ім'я завдання. Воно генерується автоматично - Security_Microsoft-Windows-Security-Auditing_4740 і нас влаштовує. На наступному кроці вказані вид журналу подій, джерело і Event ID події (все поля заповнюються автоматично і не доступні для редагування на цьому кроці). Далі пропонується вибрати тип реакції на подію. Можливі наступні варіанти: На останньому кроці майстра можна побачити отримані настройки тригера. В результаті в планувальнику завдань з'явиться нове завдання, прив'язане до нашого події. Відкриємо консоль Task Scheduler (в Administrative Tools). Створене завдання можна знайти в розділі Task Scheduler Library -> Event Viewer Tasks. Тут же можна змінити налаштування тригера події і примусово його запустити, протестувавши реакцію на подію.Порада. Якщо потрібно один тригер прив'язати до безлічі EventID, їх потрібно вказувати через кому.
Тригер є активним. Тепер при блокуванні всіх облікових записів AD - на вказаний email буде відправлятися лист з повідомленням.
eventtriggers / create / TR "Lock Account" / TK "C: \ WINDOWS \ system32 \ windowspowershell \ v1.0 \ powershell.exe c: \ script \ SendEmail.ps1" / L Security / EID 4740
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.Примітка. У нашому прикладі, щоб завдання запрацювало коректно, потрібно запускати його з підвищеними привілеями. Для цього в його настройках потрібно встановити галку Runwithhighestprivileges.
Протестуємо завдання ще раз. Тепер на пошту адміністратора буде приходити повідомлення з вкладенням, в якому вказано дані про імені заблокованої облікового запису, часу блокування та іншою корисною інформацією.
Порада. Використання функціоналу тригерів подій Window для оповіщення адміністратора про критичних проблемах на серверах не є повноцінною заміною системи моніторингу, такий як System Center Operations Manager і Zenoss. Однак як просте вбудоване засіб моніторингу та оповіщення для малого бізнесу, що не потребує вкладень у впровадження і навчання персоналу, укупі з можливістю консолідації логів відразу з декількох серверів (Forwarded Events), воно цілком юзабельно.