我希望使用WMI获取本地计算机上磁盘的性能信息。根据Win32_PerfFormattedData_PerfDisk_LogicalDisk(http://msdn.microsoft.com/en-us/library/aa394261(v=vs.85).aspx)的文档,看起来我应该能够查询信息并获取值。
然而,当我运行代码时,我为属性的每个值得到“0”。
var selectQuery = new SelectQuery("Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk");
var searcher = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject disk in searcher.Get())
{
foreach (PropertyData property in disk.Properties)
{
var propertyValue = property.Value; // 0 value.
}
}
我也查询了Win32_PerfRawData_PerfDisk_LogicalDisk,我确实得到了实际的原始值。当然,我宁愿使用格式化数据而不是原始数据。在使用WMI时,似乎缺乏将原始数据转换为格式化数据的文档。
我知道为什么每个值都得0?
答案 0 :(得分: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 propData in service.Properties)
{
Console.WriteLine("{0} {1}", propData.Name, propData.Value);
}
}