C#wmi查询异常使用ManagementObjectSearcher的类无效
我正在尝试使用c#中的System.Management运行wmi查询,并不断获取无效类。它适用于使用pcoip协议的wmware虚拟桌面。我可以使用WMI浏览器,它显示如下 下面是一些c#代码示例。我知道它没有使用“using”语句,我只是尽量简短。我注意到,如果我在WMI资源管理器中选择顶级名称空间并尝试运行查询,它将失败,并出现相同的无效类错误,然后单击ROOT\CIMV2并运行查询,它将正常工作。我已经检查了范围内的路径等,它似乎是正确的。我也不能使用Microsoft.Management.InfrastructureC#wmi查询异常使用ManagementObjectSearcher的类无效,c#,wmi,system.management,C#,Wmi,System.management,我正在尝试使用c#中的System.Management运行wmi查询,并不断获取无效类。它适用于使用pcoip协议的wmware虚拟桌面。我可以使用WMI浏览器,它显示如下 下面是一些c#代码示例。我知道它没有使用“using”语句,我只是尽量简短。我注意到,如果我在WMI资源管理器中选择顶级名称空间并尝试运行查询,它将失败,并出现相同的无效类错误,然后单击ROOT\CIMV2并运行查询,它将正常工作。我已经检查了范围内的路径等,它似乎是正确的。我也不能使用Microsoft.Manage
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资源管理器中看到,但如果使用WMI代码创建者,我看不到。LMAO。。。看到它在WMI资源管理器中工作,而不是在WMI代码创建者中工作,我开始思考,尤其是在查看WMI资源管理器的源代码并意识到它在代码方面和我做的是一样的事情之后。在任务管理器中查看,发现WMI Explorer以64位应用程序的形式运行,而WMI代码创建者以32位应用程序的形式运行。在64年编译之后,你知道它是如何工作的吗。我错误地认为所有WMI提供程序都有一个32位和64位版本,这显然不是事实。好消息是我想使用性能计数器而不是WMI,在使用性能计数器而不是WMI查询编译为64之后,您知道些什么?现在我也可以看到性能计数器类别。希望这是我今年最后一次头脑发热