C#WMI读数:Win32_PerfRawData_Tcpip_网络接口不返回任何内容

C#WMI读数:Win32_PerfRawData_Tcpip_网络接口不返回任何内容,c#,windows,wmi,C#,Windows,Wmi,我尝试用C#读取WMI数据。我使用System.Management命名空间。对于大多数WMI查询,它工作得非常好。但是,当我试图从Win32\u performatteddata\u Tcpip\u网络接口读取“BytesTotalPerSec”时,它不起作用。我的代码如下所示: var select = $"SELECT BytesTotalPerSec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface WHERE Name = 'My

我尝试用C#读取WMI数据。我使用System.Management命名空间。对于大多数WMI查询,它工作得非常好。但是,当我试图从Win32\u performatteddata\u Tcpip\u网络接口读取“BytesTotalPerSec”时,它不起作用。我的代码如下所示:

var select = $"SELECT BytesTotalPerSec FROM 
Win32_PerfFormattedData_Tcpip_NetworkInterface WHERE Name = 'MyAdapter'";
var scope = new ManagementScope($"\\\\{computername}\\root\\cimv2");
scope.Connect();

var query = new ObjectQuery(select);
var searcher = new ManagementObjectSearcher(scope, query);
var queryCollection = searcher.Get();
double value = 0;
foreach (var item in queryCollection)
    value = Convert.ToDouble(item["BytesTotalPerSec"]);
我在其他WMI查询中尝试了这段代码,它可以正常工作。调试代码时,queryCollection没有任何项。有人知道我做错了什么吗


对不起,我的英语不好,希望你能理解我的问题。

我找到了解决办法。问题不是因为我的代码。Windows从性能监视器读取WMI代码Win32\u PerfFormattedData\u Tcpip\u NetworkInterface。我尝试使用CIM读取所有其他WMI代码的值,该值将直接发送到操作系统。 由于Win32_PerfFormattedData_Tcpip_NetworkInterface使用性能监视器,因此执行用户必须在组performance monitor Users中。 当我把我的用户放入这个组时,它就工作了