列出第三方WMI提供程序之前重新生成存储库

我正在寻找一些列出WMI第三方提供者的Powershell cmdlet /脚本,然后重build整个存储库。

有GWMI cmdlet列出所有的WMI对象,但我缺less像“公司:” ,然后我会使用筛选器列出非微软的WMIs。

Get-WmiObject -List | fl * ... PSComputerName : MyComputer Name : __SystemClass __GENUS : 1 __CLASS : __SystemClass __SUPERCLASS : __DYNASTY : __SystemClass __RELPATH : __SystemClass __PROPERTY_COUNT : 0 __DERIVATION : {} __SERVER : MyComputer __NAMESPACE : ROOT\CIMV2 __PATH : \\MyComputer\ROOT\CIMV2:__SystemClass Path : \\MyComputer\ROOT\CIMV2:__SystemClass Derivation : {} Methods : {} Scope : System.Management.ManagementScope Options : System.Management.ObjectGetOptions ClassPath : \\MyComputer\ROOT\CIMV2:__SystemClass Properties : {} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {abstract} Site : Container : .... 

有没有办法检测第三方WMI提供程序? 感谢您的任何帮助。

鉴于WMI是如何构build和实施的,您在一个神奇的解决scheme上有点SOL。 我可以帮你一些,但你仍然要看眼前的结果。 从本质上讲,您需要从以下代码获得的提供者列表开始:

 $Providers = Get-WmiObject "__win32provider" 

如果数组的数目短的眼球提供者的名字。 微软没有使用标准的命名约定,所以你可以忘记用像“MSProvider”这样有用的东西进行过滤。

第三方被告知并要求,但不是必须的,为自己的命名空间创build自己的提供者。 任何不在“CIMV2”中的东西都应该脱颖而出并加以仔细研究。 作为参考,您可以查看第三方如何注册WMI提供程序,以及在此处需要什么信息。

上面的代码返回的对象有一个CLSID属性,它对应于它们在Windowsregistry中的条目。 你可以遍历它们并查询registry,看看第三方是否可以使用键来标识键值。

快乐狩猎。