WMI查询 - 2008性能计数器警报

时间:2011-11-16 16:27:07

标签: vbscript wmi windows-server-2008-r2 performancecounter wmi-query

我在Windows 2008服务器上有一组性能计数器警报,我将其配置为在警报触发后在事件查看器中写入。

它会在此事件查看器中写入“应用程序和服务日志/ Microsoft / Windows / Diagnosis-PLA / Operational”

我正在尝试在vbscript文件中针对此事件查看器编写WMI查询以读取其中的事件。

这是我的问题:

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("select * from Win32_NtLogEvent where Logfile = 'Microsoft-Windows-Bits-Client%4Operational'")

问题是:当我检查colItems.count时,它返回零,但是我知道那里有事件,当我导航到事件查看器时我可以看到它们。

如果我查询'Application'事件查看器,同样的查询工作正常:

Set colItems = objWMIService.ExecQuery("select * from Win32_NtLogEvent where Logfile = 'Application'")

它正确返回计数。

知道第一个查询中的问题是什么吗?

1 个答案:

答案 0 :(得分:1)

WMI不支持Windows事件日志的事件跟踪。应用程序事件日志(您的查询正在运行)是一个不使用Windows事件技术的经典事件日志。 Win32_NtLogEvent公开了经典事件日志中记录的事件,但是公开来自最新事件日志(在Vista中引入)的事件。但是,您可以使用PowerShell cmdlet Get-WinEvent 读取这些日志。