如何使用 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-CimInstance
和 ConvertTo-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
我正在尝试解析以下内容的输出:
wmic copmutersystem
和
net.exe config workstation
使用 PowerShell 获取对象作为 Key/Value 对 and/or 将其转换为 JSON 字符串。
我知道有一个 PowerShell 等效命令:
Get-CimInstance -Class Win32_computersystem
但这里的问题是弄清楚如何使用 PowerShell 为 wmic
CMD 行解析类似的输出。
使用 Get-CimInstance
和 ConvertTo-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