Как известно, функционал Event Viewer-а (Просмотр событий, по-нашему) в Windows Server 2008 позволяет навешивать на факт прихода события действия, такие как послать e-mail сообщение по указанному адресу или запустить заданную программу. Настроить сие можно как на весь лог (System, Application и так далее), так и на отдельный отфильтрованный Custom View. Однако проблема в том, что при создании такого задания нет возможности добавить в тело письма, которое формируется при событии, информацию о собственно событии.
Однако не все так плохо, и технически Event Viewer такое умеет, и лишь GUI-интерфейс решить подобную задачу не позволяет.
Итак, для создания инфомативного шаблона e-mail, необходимы, очевидно, внутренние переменные Event Viewer-а, которые будут разрешаться в соответствующие событию-триггеру значения. Штатный мастер сделать подобное не позволяет, поэтому открываем Task Scheduler, в котором находим папку Event Viewer Tasks, где должно быть созданное ранее задание, и экспортируем его. На выходе получаем XML-файл, где описаны все внесенные нами при создании этого задания настройки.
Далее следует добавить в XML описания переменных, значения которых нам пригодятся для формирования письма:
<ValueQueries> <Value name="EventChannel">Event/System/Channel</Value> <Value name="EventComputer">Event/System/Computer</Value> <Value name="EventData">Event/EventData/Data</Value> <Value name="EventID">Event/System/EventID</Value> <Value name="EventRecordID">Event/System/EventRecordID</Value> <Value name="EventSeverity">Event/System/Level</Value> <Value name="Message">Event/RenderingInfo/Message</Value> </ValueQueries>
Я добавлял это в секцию <EventTrigger>, сразу под <Subscription>. После этого можно использовать определенные переменные в e-mail шаблоне. Например, так:
<Actions Context="Author"> <SendEmail> <Server>mail.example.org</Server> <Subject>Event ($(EventID)) from $(EventComputer)</Subject> <To>user@example.org</To> <From>eventlog@example.org</From> <Body> $(EventComputer) reports event $(EventID) in $(EventChannel), record $(EventRecordID), severety $(EventSeverity): $(EventData) $(Message) </Body> <HeaderFields /> <Attachments /> </SendEmail> </Actions> </Task>
Источник мудрости тут.