有没有办法通过C#中的WMI查询,就像你可以使用System.Diagnostics.PerformanceCounter
类一样?
简单地说,如何将它传递给像\\localhost\Processor(0)\% Processor Time
这样的字符串,它会为我构建正确的WMI查询?
我在遗留程序的平面文件中有大量的计数器列表,我想将它移动到一个只运行平面文件并获取值的服务。
答案 0 :(得分:2)
您可以使用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);
}
}