转换VBS脚本以将WMI类名称列表到Powershell

时间:2013-10-17 21:11:00

标签: powershell vbscript wmi powershell-v3.0 classname

基本上我想使用Powershell转储root\cimv2命名空间中所有可用类的列表。我有一个完成任务的vbscript:

Set objWMIService = _ 
   GetObject("winmgmts:{impersonationLevel=impersonate}root\cimv2")

Set colClasses = objWMIService.SubClassesOf

For Each objClass In colClasses
If Left(objClass.Path_.Class,6) = "Win32_" Then
   WScript.Echo objClass.Path_.Class
End If
Next

我已经能够获得powershell来检索列表,但我似乎无法弄清楚如何将它转换为Write-Host名称。这就是我现在所处的位置:

$WMIService = Get-WmiObject -Namespace root\cimv2 -List
$aClasses = $WMIService.SubClassesOf
foreach ($Class in $aClasses) {
    Write-Host $Class.Path_.Class
}

Powershell转储了一长串没有的东西,所以我知道它被列举了一些东西。我已经尝试了各种$Class.x并且尚未击中魔术。有谁知道吗?

1 个答案:

答案 0 :(得分:2)

类似于:

$WMIService = Get-WmiObject -Namespace root\cimv2 -List
$WMIService | where { $_.Name -like "Win32_*" } | foreach { $_.Name }

我想你会找到你想要的东西。