我正在使用新的Microsoft.Management.Infrastructure
类来处理WMI,但我遇到了一个绊脚石,并且无法找到任何有关如何使用这些类来解决此问题的信息,而无需不得不退回到使用System.Management.ManagementObject
。Microsoft.Management.Infrastructure命名空间 - Cim类
基本上,Microsoft.Management.Infrastructure
不公开任何对象的方法,这是我遇到的困难。
我检索的CimClass
对象,姑且称之为Win32_Process
,叫物业.CimClassProperties["Handle"]
得到Handle
财产和.Qualifiers
检索合格者为Handle
财产清单。
在这个阶段,我想删除其中一个限定符,但没有暴露的方法允许这样的事情。
使用Microsoft.Management.ManagementObject
命名空间,我能得到一个ManagementClass
对象,再次Win32_Process
为参数的缘故,叫.Properties["Handle"].Qualifiers.Remove(<qualifierName>)
去除预选赛,但不知道如何做到这一点使用新的类,有没有信息在那里,我可以找到。
编辑:我做了一些挖掘和发现,调用方法对CIM对象可以使用CimSession
类,即使用CimSession.InvokeMethod
或CimSession.InvokeMethodAsync
方法,并能够使用它来调用CimClass
的方法和一个CimInstance
,但似乎无法调用这两者之外的任何对象的方法,从我所能看到的方面来看。这是我吗?
如前所述,如果使用'System.Management.ManagementObject'这是可行的。 – JohnUbuntu
我想当类本身没有公开写函数时,它怎么可能使用API?我在这里有点困惑。 – atp9
由于*每个* WMI对象都可以创建和删除,因此这些不必由WMI类公开,它们由父类继承。当你创建自己的WMI类时,你也不会创建一个创建方法,但你可以创建该类的实例... – JohnUbuntu