我是一个Linux的家伙,所以我习惯于“grep”。 用grep它保留列,但是在PowerShell中,它会改变输出。 例如:
Get-WmiObject -List | Select-String -Pattern "Win32_LogicalDisk$" \\COMP\ROOT\cimv2:Win32_LogicalDisk
在“Get-WmiObject -List”中列出如下列:
CIM_Tachometer {SetPowerState, R... {Accuracy, Availability, Caption, ConfigManagerErrorCode...
我想我的“select”产生整个列,而不仅仅是对象或任何它的返回。 我想模仿Get-WmiObject -List的实际输出的grep
另外作为一个bouns方面的问题:除了MSDN什么是一个很好的网站,列出所有的WMI对象,他们返回什么? 这似乎是一个超强大的方式来获取有关Windows系统的任何方面的信息。 我对吗?
你不想使用Select-String 。 Powershell为这种过滤提供了Where-Object cmdlet:
Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" }
您也可以使用Select-Object来扩展从Where-Object返回的对象上的属性“属性”:
Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" } | Select-Object -ExpandProperty Properties
如果你想探索WMI,有很多工具可用。 一个Powershell版本, WMI资源pipe理器可能是你特别感兴趣的。