Powershell - Get-DistributionGroup导出到csv问题

时间:2014-07-07 01:52:31

标签: powershell

以下命令会将正确的信息输出到屏幕,但是当导出到csv文件时,它看起来与屏幕上显示的内容完全不同。我已经能够使用其他cmdlet导出,Get-DistributionGroup在使用export.csv时似乎会破坏数据。

 Outputting to screen works great!
 Get-DistributionGroup  | Where {$_.emailaddresses -like "*@adomain.com*"} | FT  Name,Alias,EmailAddresses

 Exporting to csv doesnt work correctly
 Get-DistributionGroup  | Where {$_.emailaddresses -like "*@adomain.com*"} | FT  Name,Alias,EmailAddresses | Export-csv C:/thisis.csv

2 个答案:

答案 0 :(得分:1)

而不是Format-Table(别名:ft),您应该使用Select-ObjectExport-Csv期望对象作为输入,而不是格式化指令。

根据定义,

Format-Table会将对象转换为在输出中看起来很好的东西,但它是单向行程:作为过程的一部分,您将原始对象放松。

另一方面,

Select-Object可以创建具有属性子集的对象,因此像Export-Csv这样的cmdlet仍然可以使用来自原始源的数据。

修改

我最初错过了:您尝试导出属于集合的属性(EmailAddresses)。除非你“扁平化”,否则它不会起作用。收集第一:

Get-DistributionGroup  | Where {$_.emailaddresses -like "*@adomain.com*"} | select Name,Alias, @{
    Name = 'EmailAddresses'
    Expression = { $_.EmailAddresses -join '|' }
}

答案 1 :(得分:0)

谢谢你的答案已经解决。

BartekB的回答

Get-DistributionGroup |哪里{$ .emailaddresses -like" * @ adomain.com *"} |选择名称,别名,@ {     姓名='电子邮件地址'     表达式= {$ .EmailAddresses -join' |' } }