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

tar*_*ahf 1 powershell wmi parsing json wmic

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

wmic copmutersystem
Run Code Online (Sandbox Code Playgroud)

net.exe config workstation
Run Code Online (Sandbox Code Playgroud)

使用 PowerShell 获取对象作为键/值对和/或将其转换为 JSON 字符串。

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

Get-CimInstance  -Class Win32_computersystem
Run Code Online (Sandbox Code Playgroud)

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

zda*_*dan 5

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

Get-CimInstance -Class Win32_ComputerSystem | ConvertTo-Json
Run Code Online (Sandbox Code Playgroud)

编辑:使用了此答案的先前修订版Get-WMIObject,但已被弃用

  • 请改用“Get-CimInstance -Class Win32_ComputerSystem”。 (2认同)

js2*_*010 5

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

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

Model
-----
OptiPlex 7490 AIO
Run Code Online (Sandbox Code Playgroud)

列出 wmic 类别名:

wmic alias list brief
Run Code Online (Sandbox Code Playgroud)
wmic alias where "friendlyname = 'computersystem'" list brief
wmic alias where "friendlyname like '%comp%'" list brief

FriendlyName    PWhere  Target
ComputerSystem          Select * from Win32_ComputerSystem
Run Code Online (Sandbox Code Playgroud)

例如:

ComputerSystem                                   Select * from Win32_ComputerSystem
Run Code Online (Sandbox Code Playgroud)
get-ciminstance win32_computersystem
Run Code Online (Sandbox Code Playgroud)