
W systemie Windows Server 2008 (Vista) pojawiła się nowa funkcjonalność, która pozwala powiązać zadanie harmonogramu z dowolnym zdarzeniem w dziennikach systemowych. Dzięki tej funkcji administrator może zaplanować określony skrypt lub wysłać alert e-mail do dowolnego zdarzenia systemu Windows. Zajmiemy się tą możliwością bardziej szczegółowo..
Możliwość uruchamiania zadań w przypadku wystąpienia określonych zdarzeń systemu Windows opiera się na ścisłej integracji Harmonogram zadań i Przeglądarka zdarzeń. Możesz przypisać zadanie harmonogramu do dowolnego zdarzenia Windows bezpośrednio z konsoli dziennika Podglądu zdarzeń. W odpowiedzi na zdarzenie program planujący może uruchomić skrypt lub wysłać powiadomienie e-mail do administratora (lub dowolnego innego użytkownika).
Załóżmy, że naszym zadaniem jest skonfigurowanie powiadamiania administratora bezpieczeństwa o zablokowaniu konta użytkownika w usłudze Active Directory.
Wskazówka. Wybraliśmy to wydarzenie dla jasności. W rzeczywistości zakres zastosowań tej funkcjonalności jest dość szeroki. Mogą to być na przykład powiadomienia o zamknięciu określonej usługi Windows, uruchomieniu określonego programu do wykonania kopii zapasowej Exchange, powiadomienie o zmianie w grupach zabezpieczeń Active Directory lub zmianach w niektórych folderach lub plikach itp..Zdarzenie blokowania konta w AD jest odnotowane na kontrolerze domeny w dzienniku zabezpieczeń. Blokada zdarzenia identyfikatora zdarzenia - 4740. Otwórz konsolę dziennika zdarzeń Windows (Podgląd zdarzeń - eventvwr.msc) i poszukaj wydarzenia, które nas interesuje. Kliknij go prawym przyciskiem myszy i wybierz Dołącz Zadanie To To Wydarzenie (Dołącz zadanie do tego wydarzenia).
Uruchomi się kreator tworzenia harmonogramu zadań. Kreator wyświetli monit o podanie nazwy zadania. Jest generowany automatycznie. - Security_Microsoft-Windows-Security-Auditing_4740 i jesteśmy zadowoleni.
Następny krok pokazuje typ dziennika zdarzeń, źródło i identyfikator zdarzenia (wszystkie pola są wypełniane automatycznie i nie są dostępne do edycji na tym etapie).
Ponadto proponuje się wybór rodzaju reakcji na zdarzenie. Możliwe są następujące opcje:
- Uruchom program - uruchom program (skrypt)
- Wyślij wiadomość e-mail - wyślij powiadomienie pocztą
- Wyświetl wiadomość - wyświetl wiadomość w konsoli
Jesteśmy zainteresowani powiadomieniami e-mail. Podajemy nadawcę, odbiorcę, adres serwera SMTP, temat i treść wiadomości.
W ostatnim kroku kreatora można wyświetlić ustawienia wyzwalacza. W rezultacie w harmonogramie zadań pojawi się nowe zadanie powiązane z naszym wydarzeniem. Otwórzmy konsolę Harmonogram zadań (w Narzędziach administracyjnych). Utworzone zadanie można znaleźć w sekcji Biblioteka harmonogramu zadań -> Zadania podglądu zdarzeń.
Tutaj możesz zmienić ustawienia wyzwalacza zdarzenia i zmusić go do uruchomienia, testując reakcję na zdarzenie.
Spust jest aktywny. Teraz, gdy blokujesz dowolne konto AD - wiadomość e-mail z powiadomieniem zostanie wysłana na podany adres e-mail.
Uwaga. Podobna funkcjonalność w systemie Windows Server 2003 i wcześniejszych wersjach systemu Windows została zaimplementowana za pomocą narzędzia konsoli - eventtriggers.exe. To narzędzie pozwoliło także na śledzenie zdarzeń w dziennikach systemowych i wyzwalanie niektórych zdarzeń. W naszym przykładzie, gdy musisz powiązać wykonanie skryptu VBS lub PowerShell ze zdarzeniem 4740, które wysyła wiadomość e-mail do skrzynki pocztowej administratora, polecenie może wyglądać tak:
eventtriggers / create / TR „Lock Account” / TK „C: \ WINDOWS \ system32 \ Windowspowershell \ v1.0 \ powershell.exe c: \ script \ SendEmail.ps1" / L Security / EID 4740
Takie powiadomienie nie jest bardzo pouczające, a aby wyświetlić szczegółowe informacje o zdarzeniu, należy otworzyć dziennik Podglądu zdarzeń. Spróbujmy dołączyć dane z dziennika zdarzeń do listu. Pomoże nam w tym narzędzie Wevtutil, które pozwala zwolnić informacje o każdym zdarzeniu z dzienników systemu Windows. Tak więc, aby uzyskać dane o ostatnim zdarzeniu z kodem 4740 z dziennika bezpieczeństwa, musisz:
wevtutil qe Security / q: "* [System [(EventID = 4740)]]" / f: text / rd: true / c: 1
Utwórzmy skrypt (query.cmd) z dwóch wierszy: pierwszy usuwa stary plik dziennika, drugi zwalnia ostatnie zdarzenie z dziennika i zapisuje go w pliku dziennika:
del c: \ script \ query.txt
wevtutil qe Security / q: "* [System [(EventID = 4740)]]" / f: text / rd: true / c: 1> c: \ script \ query.txt
Pozostaje jeszcze raz otworzyć ustawienia wcześniej utworzonego wyzwalacza w dzienniku harmonogramu zadań. Na karcie Działania dodaj nową akcję - uruchomienie skryptu query.cmd. Następnie musisz zmienić kolejność akcji, przesuń ją w górę listy za pomocą strzałek po prawej stronie (skrypt powinien zostać wykonany najpierw).
Następnie edytujemy drugą akcję - wysłanie wiadomości e-mail, wybranie pliku c: \ script \ query.txt jako załącznika do listu .

Przetestuj zadanie ponownie. Teraz poczta administratora otrzyma powiadomienie z załącznikiem, które zawiera informacje o nazwie zablokowanego konta, czasie zablokowania i inne przydatne informacje.
Wiązanie zadań harmonogramu ze zdarzeniami w dziennikach systemowych działa we wszystkich wersjach systemu Windows, począwszy od systemu Windows Server 2008 / Vista. Ta funkcja umożliwia szybkie powiadomienie administratora o wystąpieniu określonych problemów z serwerów i zareagowanie na nie.