2013-11-21 2 views
0

Есть ли способ запросить несколько объектов WMI и выбрать требуемые значения из каждого объекта и экспортировать в Excel?Запросить несколько объектов WMI в PowerShell и экспортировать в Excel

Я хочу: получить имя компьютера и имя владельца из класса win32_computersystem и серийный номер из класса win32_bios и экспортировать результаты в CSV, чтобы получить полный список компьютерных систем в моей организации.

Как это может быть достигнуто?

+0

Да, это может быть сделано, и это довольно распространенный сценарий. Сколько исследований вы сделали в этом, и что вы пытались достичь цели? И почему вы не используете уже построенный инструмент, такой как SCCM, который предназначен для инвентаризации систем в вашей сети и может автоматически создать этот отчет для вас? – alroc

ответ

0

Создайте пользовательский объект с требуемыми свойствами. Используйте New-Object, чтобы создать его. Используйте Add-Member, чтобы добавить noteproperty членов к объекту. Получить данные с помощью WMI (Get-WmiObject - alias gwmi) и заполнить их свойствами.

Соберите объекты в массив и экспортируйте их как CSV с Export-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 
Смежные вопросы