Определить, когда новое событие зарегистрировано в Windows - PullRequest
0 голосов
/ 29 сентября 2011

Как я могу обнаружить в моем приложении, когда новое событие регистрируется в журнале событий Windows. В настоящее время я использую таймер каждые 5 минут для проверки новых событий, но было бы намного лучше, если бы я мог обнаруживать новые события в режиме реального времени с помощью WMI или .net

Спасибо

1 Ответ

2 голосов
/ 30 сентября 2011

Вам нужно настроить WMI Temporary Event Consumer в вашем приложении. Обратите внимание, что для мониторинга Журнал событий, вам нужно будет запросить SeSecurityPrivilege в вашем WMI-соединении (возможно, вы можете получать события из журнала безопасности, для которых требуется это разрешение)

Вот несколько примеров WQL запросов:

// See all events:
select * from __InstanceCreationEvent where TargetInstance ISA 'Win32_NTLogEvent'

// Catch only specific events: 4202 is a network transport failure
select * from __InstanceCreationEvent where TargetInstance ISA 'Win32_NTLogEvent'
     and TargetInstance.EventCode=4202

// Catch only events from a specific source: in this case WMI itself.
select * from __InstanceCreationEvent where TargetInstance ISA 'Win32_NTLogEvent'
     and TargetInstance.SourceName='WinMgmt'
...