nickAd
Можно штатными средствами через
WMI - настроить
фильтр событий на новые сообщения журналов, а в качестве
потребителя событий можно использовать отправку SMTP-сообщения (SMTPEventConsumer), запуск VBS или Java скрипта (ActiveScriptEventConsumer) или запуск произвольной программы (CommandLineEventConsumer). Линки по теме:
-
Monitoring and Responding to Events with Standard Consumers
-
Sending E-mail Based on an Event
Чтобы было ясно что к чему, переделал MOF из последнего линка для твоего случая... впрочем, сам его не проверял - не было возможности. Смысл некоторых полей можно прояснить по линку:
http://msdn2.microsoft.com/en-us/library/aa393629.aspx
Код:
#pragma namespace ("\\\\.\\root\\subscription")
instance of __EventFilter as $FILTER
{
Name = "WarningErrorEventLogFilter";
EventNamespace = "\\\\.\\root\\cimv2";
Query = "SELECT * FROM __InstanceCreationEvent WITHIN 5 "
"WHERE TargetInstance ISA \"Win32_NTLogEvent\" "
"AND (TargetInstance.Logfile = \"Application\""
"OR TargetInstance.Logfile = \"System\")"
"AND (TargetInstance.Type = \"Error\""
"OR TargetInstance.Type = \"Warning\")";
QueryLanguage = "WQL";
};
instance of SMTPEventConsumer as $CONSUMER
{
Name = "NewEvent";
ToLine = "SysAd@MyCompany.com, MyAlias@MyCompany.com";
CcLine = "MyHome@MyISP.com";
ReplyToLine = "MyAlias@MyCompany.com";
SMTPServer = "SmartHost";
Subject = "%TargetInstance.Logfile% %TargetInstance.Type%."
"ID: %TargetInstance.EventCode%, "
"Source: %TargetInstance.SourceName%";
Message = "%TargetInstance.Message%";
};
instance of __FilterToConsumerBinding
{
Consumer = $CONSUMER ;
Filter = $FILTER ;
};