WMI 性能计数器查询问题

Posted

技术标签:

【中文标题】WMI 性能计数器查询问题【英文标题】:WMI Performance counter Query issues 【发布时间】:2010-08-19 14:47:29 【问题描述】:

有没有办法通过 C# 中的 WMI 进行查询,就像使用 System.Diagnostics.PerformanceCounter 类一样?

简单地说,我怎样才能向它传递一个像\\localhost\Processor(0)\% Processor Time 这样的字符串,它会为我构建正确的 WMI 查询?

我在一个遗留程序的平面文件中有大量计数器列表,我想将它移动到一个服务,该服务只在平面文件中运行并获取值。

【问题讨论】:

【参考方案1】:

您可以使用 WMI Performance Class Counters。这方面的一个例子是轮询 PerfDisk_LogicalDisk

ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk");
foreach (ManagementObject service in mos.Get())

    foreach (PropertyData data in service.Properties)
    
        Console.WriteLine("0 1", data.Name, data.Value);
    

【讨论】:

以上是关于WMI 性能计数器查询问题的主要内容,如果未能解决你的问题,请参考以下文章

通过 WMI 访问应用程序的自定义性能计数器

使用刷新对象收集 wmi 性能计数器

C# WMI、性能计数器和 SNMP 哦,天哪!

使用 WMI 查询的 perfmon 计数器值问题

在 PowerShell 中向 WMI 发送 Refresh()

如何使用查询性能计数器?