如何使用 PowerShell 解析 Windows 命令 `wmic` 的输出

How to parse the output of the Windows command `wmic` using PowerShell

我正在尝试解析以下内容的输出:

wmic copmutersystem

net.exe config workstation

使用 PowerShell 获取对象作为 Key/Value 对 and/or 将其转换为 JSON 字符串。

我知道有一个 PowerShell 等效命令:

Get-CimInstance  -Class Win32_computersystem

但这里的问题是弄清楚如何使用 PowerShell 为 wmic CMD 行解析类似的输出。

使用 Get-CimInstanceConvertTo-Json 命令行开关:

Get-CimInstance -Class Win32_ComputerSystem | ConvertTo-Json

编辑: 此答案的先前版本使用了 Get-WMIObject,但那是 deprecated

Wmic 可以输出csv 或xml,但显然get-wmiobject 或get-ciminstance 是首选。您只需要找到 class 名称而不是别名。 wmic和powershell的创建者是同一个

wmic computersystem list /format:csv | convertfrom-csv | select model

Model
-----
OptiPlex 7490 AIO

列出 wmic class 别名:

wmic alias list brief

例如:

ComputerSystem                                   Select * from Win32_ComputerSystem
get-ciminstance win32_computersystem