0

我正在寻找使用 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 吗?

4

1 回答 1

1

这是一个刚刚测试过的工作示例

您可以使用 WMI性能类计数器。这方面的一个例子是轮询 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);
    }
}
于 2012-12-16T20:17:12.423 回答