首页 文章

使用WMI监视事件日志

提问于
浏览
0

我正在尝试使用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

    你WQL senence错了 Select * From __InstanceCreationEvent Where TargetInstance.LogFile='Application'

    您必须使用 ISA 关键字在句子中包含您正在检查的类

    像这样的东西

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

相关问题