c# - C# WMI 读数:Win32_PerfRawData_Tcpip_NetworkInterface 不返回任何内容
问题描述
我尝试用 C# 读出 WMI 数据。我使用 System.Management 命名空间。对于大多数 WMI 查询,它运行良好。但是当我尝试从 Win32_PerfFormattedData_Tcpip_NetworkInterface 读取“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_PerfFormattedData_Tcpip_NetworkInterface。我尝试使用的所有其他 WMI 代码都使用 CIM 读取它们的值,它直接进入操作系统。因为 Win32_PerfFormattedData_Tcpip_NetworkInterface 使用性能监视器,所以执行用户必须在 Performance Monitor Users 组中。当我将我的用户放入该组时,它可以工作。
推荐阅读
- c++ - C++中的无符号算术
- powershell - 将列表项转换为网格视图
- html - 导航栏未正确排列
- google-chrome - 为什么 Chrome 不显示 Content-Type: text/html;charset=utf-8 从 nginx 返回
- c++ - 特定时间戳的 WinAPI 调用代码
- reactjs - componentDidMount 中的多次调度
- typo3 - maxWInText TypoScript 设置对 Youtube 视频无效
- ios - 说明 NSLayoutConstraint 到框架
- javascript - 是否可以在 javascript 正则表达式中匹配我的捕获组匹配的字符串中的字符串?
- javascript - Javascript 图像预览