Использование WMI для мониторинга журнала событий - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь использовать WMI для мониторинга журнала событий на предмет событий EntryWritten, поэтому я настроил обработчик следующим образом:

// Create the event log monitor
        string query = "Select * From __InstanceCreationEvent Where TargetInstance.LogFile='Application'";
        WqlEventQuery aProcessCreationQuery = new WqlEventQuery(query);
        ManagementEventWatcher aWatcher = new ManagementEventWatcher(aProcessCreationQuery);
        aWatcher.EventArrived += new EventArrivedEventHandler(EventLogMonitor);

Но мой метод-обработчик EventLogMonitor никогда не срабатывает, даже когда что-то записывается в журнал событий приложений. Мое приложение работает как служба мониторинга для вещей, записанных в журнал событий.

Я нашел где-то, что мне может понадобиться добавить строку:

aWatcher.Start()

в методе StartService (), но если я это сделаю, служба не запустится. Интересно, есть ли у кого-нибудь идеи по этому поводу?

1 Ответ

3 голосов
/ 12 января 2012

Ваш WQL неверен Select * From __InstanceCreationEvent Where TargetInstance.LogFile='Application'

вы должны включить проверяемый класс в предложение, используя ключевое слово ISA

Примерно так

Select * From __InstanceCreationEvent WHERE TargetInstance ISA 'Win32_NTLogEvent' and TargetInstance.LogFile='Application'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...