C# wmi 查询异常无效 class 使用 ManagmentObjectSearcher
C# wmi query exception invalid class using ManagmentObjectSearcher
我正在尝试 运行 在 c# 中使用 System.Management 的 wmi 查询,但一直无效 class。它适用于使用 pcoip 协议的 wmware 虚拟桌面。我可以使用 WMI 资源管理器,它显示如下。
这里只是一些示例 C# 代码。我知道它没有使用“使用”语句我只是想保持简短。我注意到如果我 select WMI Explorer 中的顶级命名空间并尝试 运行 查询它失败并出现相同的无效 class 错误然后如果我单击 ROOT\CIMV2 和 运行查询它工作正常。我检查了范围内的路径等,它似乎是正确的。我也不能使用 Microsoft.Management.Infrastructure。
var scope = new ManagementScope(ManagementPath.DefaultPath);
var query = new SelectQuery("SELECT * from Win32_PerfRawData_TeradiciPerf_PCoIPSessionImagingStatistics");
scope.Connect();
var searcher = new ManagementObjectSearcher(scope, query);
var collection = searcher.Get();
请注意,我可以使用 powershell 并使用
进行检索
Get-WmiObject -Class "Win32_PerfRawData_TeradiciPerf_PCoIPSessionImagingStatistics"
更新:奇怪,但我注意到我可以在 WMI Explorer 中看到,但如果使用 WMI Code Creator,我就看不到了。
LMAO...看到它在 WMI Explorer 中运行但在 WMI Code Creater 中不起作用让我开始思考,尤其是在查看 WMI Explorer 的源代码并意识到它正在以代码方式执行与我相同的操作之后。查看任务管理器,发现 WMI Explorer 是 运行 作为 64 位应用程序,而 WMI Code Creator 在 32 位中是 运行。好吧,在 64 位编译之后,你知道它的工作原理是什么。我错误地假设所有 WMI 提供程序都有 32 位和 64 位版本,显然情况并非如此。好消息是我想使用性能计数器而不是 WMI,在使用性能计数器而不是使用 WMI 查询编译为 64 后你知道什么我现在也可以看到性能计数器类别。希望那是我今年最后一次空头时刻。
我正在尝试 运行 在 c# 中使用 System.Management 的 wmi 查询,但一直无效 class。它适用于使用 pcoip 协议的 wmware 虚拟桌面。我可以使用 WMI 资源管理器,它显示如下。
这里只是一些示例 C# 代码。我知道它没有使用“使用”语句我只是想保持简短。我注意到如果我 select WMI Explorer 中的顶级命名空间并尝试 运行 查询它失败并出现相同的无效 class 错误然后如果我单击 ROOT\CIMV2 和 运行查询它工作正常。我检查了范围内的路径等,它似乎是正确的。我也不能使用 Microsoft.Management.Infrastructure。
var scope = new ManagementScope(ManagementPath.DefaultPath);
var query = new SelectQuery("SELECT * from Win32_PerfRawData_TeradiciPerf_PCoIPSessionImagingStatistics");
scope.Connect();
var searcher = new ManagementObjectSearcher(scope, query);
var collection = searcher.Get();
请注意,我可以使用 powershell 并使用
进行检索Get-WmiObject -Class "Win32_PerfRawData_TeradiciPerf_PCoIPSessionImagingStatistics"
更新:奇怪,但我注意到我可以在 WMI Explorer 中看到,但如果使用 WMI Code Creator,我就看不到了。
LMAO...看到它在 WMI Explorer 中运行但在 WMI Code Creater 中不起作用让我开始思考,尤其是在查看 WMI Explorer 的源代码并意识到它正在以代码方式执行与我相同的操作之后。查看任务管理器,发现 WMI Explorer 是 运行 作为 64 位应用程序,而 WMI Code Creator 在 32 位中是 运行。好吧,在 64 位编译之后,你知道它的工作原理是什么。我错误地假设所有 WMI 提供程序都有 32 位和 64 位版本,显然情况并非如此。好消息是我想使用性能计数器而不是 WMI,在使用性能计数器而不是使用 WMI 查询编译为 64 后你知道什么我现在也可以看到性能计数器类别。希望那是我今年最后一次空头时刻。