如何通过WMI有效地检索数据

时间:2013-08-23 11:48:51

标签: c# wpf wmi

我正在开发应用程序,它连接到远程主机并检索CPU利用率,RAM使用率,磁盘负载等指标...为了远程连接并检索这些指标,我使用Windows Management Instrumentation(WMI)。我为每个指标创建了WQL查询。例如,要访问4种类型的度量标准,我使用4种不同的WQL查询,这会导致整个监控过程出现一些延迟。我的问题是,有没有办法只使用一个WQL(即只使用一次远程连接尝试),然后从该WQL查询的结果中检索必要的数据(指标)?我期待着你的回复。感谢。

更准确地说明我的应用程序的运行情况: 6秒需要 3台主机并收集 2个不同的指标来自他们每个人。这是正常的性能比吗?

我如何使用WQL获取可用RAM的方式:

string DomainPath = "\someserver.com\root\cimv2";
List<string> WQLresult = new List<string>();
ManagementObjectSearcher searcher = new ManagementObjectSearcher(DomainPath, "SELECT FreePhysicalMemory FROM Win32_OperatingSystem" );

try
{
    foreach (ManagementObject obj in searcher.Get())
    {
        WQLresult.Add(obj["FreePhysicalMemory"].ToString().Trim());
    }
}
catch (Exception ex)
{
}

我还使用Win32_PerfFormattedData_PerfOS_Processor类获取CPU数据,使用Win32_PingStatus类获取响应数据。可以看出,有3个不同的类。问题是,是否可以仅使用1个WQL来获取这些数据?

0 个答案:

没有答案