[参考]利用Powershell枚举所有本机WMI(CIM)类
最近在写一个WMI相关的项目,其中要获取的信息一个个去找比较麻烦,所以搜到了一篇文章
https://www.secpulse.com/archives/39555.html
里面给出了一种枚举CIM类的方法,只是是图片版本的。在此转录如下
function Get-WmiNamespace{
Param ($Namespace='ROOT')
Get-WmiObject -Namespace $Namespace -Class __NAMESPACE | ForEach-Object{
($ns='{0}\{1}' -f $_.__NAMESPACE, $_.Name)
Get-WmiNamespace -Namespace $ns
}
}
$WmiClasses = Get-WmiNamespace | ForEach-Object{
$Namespace = $_
Get-WmiObject -Namespace $Namespace -List | ForEach-Object{ $_.Path.Path}
} | Sort-Object -Unique
上面代码的变量$WmiClasses
内存储了所有类的内容,格式为
\\DESKTOP-25DASD6Q\ROOT\CIMV2:CIM_Processor
可以使用
echo $WmiClasses > D:\wmi.txt
将变量保存到文件中
作者发布、转载的任何文章中所涉及的技术、思路、工具仅供以安全目的的学习交流,并严格遵守《中华人民共和国网络安全法》、《中华人民共和国数据安全法》等网络安全法律法规。
任何人不得将技术用于非法用途、盈利用途。否则作者不对未许可的用途承担任何后果。
本文遵守CC BY-NC-SA 3.0协议,您可以在任何媒介以任何形式复制、发行本作品,或者修改、转换或以本作品为基础进行创作
您必须给出适当的署名,提供指向本文的链接,同时标明是否(对原文)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示作者为您或您的使用背书。
同时,本文不得用于商业目的。混合、转换、基于本作品进行创作,必须基于同一协议(CC BY-NC-SA 3.0)分发。
如有问题, 可发送邮件咨询.