如何让Export-Csv输出与屏幕输出相同的信息?

时间:2012-10-03 09:42:07

标签: powershell

Get-WmiObject -list | where-object {$_.name -match "win32"} | Select-Object 
name,methods,properties

这将显示每个Win32类的名称,方法和属性,我希望将此信息转换为CSV文件。

以下输出不会输出相同的信息。

Get-WmiObject -list | where-object {$_.name -match "win32"} | Select-Object 
name,methods,properties | Export-CSV "c:\output.csv"

我该怎么做?

(更新了我的脚本,因为它有错误。)

2 个答案:

答案 0 :(得分:2)

您需要做一些额外的手动工作,并确保扩展名称并通过某些分隔符加入它们:

$methods = @{n='Methods';e={ ($_.Methods | select -expand Name) -join ';'}}
$properties = @{n='Properties';e={ ($_.Properties  | select -expand Name) -join ';'}}

Get-WmiObject -List | 
Where-Object {$_.Name -like "Win32_*"} | 
Select-Object Name,$methods,$properties | 
Export-Csv .\win32.csv -NoTypeInformation

答案 1 :(得分:2)

这里的问题是每个WMI对象都有自己是数组的属性,而Output-CSV无法真正处理它。

要解决此问题,您需要显式处理数组数组。

你想特别输出什么?