【问题标题】:Query multiple WMI objects in PowerShell and export to Excel在 PowerShell 中查询多个 WMI 对象并导出到 Excel
【发布时间】:2013-11-21 08:49:08
【问题描述】:

有没有办法查询多个WMI 对象并从每个对象中选择所需的值并导出到 Excel?

我想实现:从 win32_computersystem 类中获取计算机名称和所有者的名称,从 win32_bios 类中获取序列号,并将结果导出到CSV,以获取我组织中计算机系统的完整清单。

如何实现?

【问题讨论】:

  • 是的,这是可以做到的,这是一个相当常见的场景。你对此做了多少研究,你为实现这个目标做了什么?您为什么不使用 SCCM 等已经构建的工具,该工具旨在清点您网络上的系统并自动为您生成此报告?

标签: powershell powershell-3.0


【解决方案1】:

创建具有所需属性的自定义对象。使用New-Object 创建一个。使用Add-Membernoteproperty 成员添加到对象。使用 WMI 获取数据(Get-WmiObject - 别名 gwmi)并使用这些数据填充对象的属性。

将对象收集到一个数组中并将其导出为带有Export-Csv的CSV。

这样试试吧,

$computers = @("System1", "System2") # An array of computer names.
$arr = @() # Array for CSV export

foreach($comp in $computers){
  $o = new-object  psobject # New object

  # Add Owner property and set its value with a WMI call
  $o | add-member -membertype noteproperty -name Owner -value (gwmi win32_computersystem -computername $comp).PrimaryOwnerName

  # Ditto for Serial property
  $o  | add-member -membertype noteproperty -name Serial -value (gwmi win32_bios -computername $comp).SerialNumber

  $arr += $o
}

# Export the object data as CSV
$arr | select -property Owner,Serial | export-csv -notypeinformation c:\temp\ownerdata.csv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多