Windows PowerShell 选择删除列

Windows PowerShell 选择删除列

我是一名 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...

我希望我的“选择”能够产生整个列,而不是仅返回对象或任何内容。我想模拟 Get-WmiObject -List 的实际输出的 grep

另外还有一个附加问题:除了 MSDN,还有哪个好的网站可以列出所有 WMI 对象及其返回的内容?这些似乎是获取有关 Windows 系统任何方面的信息的超级强大方法。对吗?

答案1

您不想使用Select-String。Powershell 提供Where-Object用于此类过滤的 cmdlet:

Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" }

您也可以使用Select-Object 扩展从以下对象返回的属性“Properties” Where-Object

Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" } | Select-Object -ExpandProperty Properties

如果你想探索 WMI,有很多工具可用。一个 Powershell 版本,WMI 资源管理器您可能特别感兴趣。

相关内容