网站搜索

在 Exchange 2013 中导出电子邮件地址


对于一个项目,我必须创建一个包含所有邮箱、它们的 UPN 和电子邮件地址的 CSV 文件。没什么大不了的,因为您可以使用以下命令:

Get-Mailbox | Select UserPrincipalName,EmailAddresses

使用 Export-Csv 命令导出到 CSV 是 PowerShell 中的默认功能,如下所示:

Get-Mailbox | Select UserPrincipalName,EmailAddresses | Export-Csv C:\Temp\Addresses.csv

不幸的是,这并没有给出预期的结果。由于 EmailAddresses 属性是一个多值属性,因此仅导出定义而不导出值,它将显示如下:

#TYPE 已选择.Microsoft.Exchange.Data.Directory.Management.Mailbox
“UserPrincipalName”,“电子邮件地址”
“Michael@azurelabs.nl”,“Microsoft.Exchange.Data.ProxyAddressCollection”

这可以通过创建自定义字段并获取属性的所有值并用“,”字符连接来解决,如下所示:

Get-Mailbox | Select UserPrincipalName, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}}

将此与 Export-Csv 命令结合使用:

Get-Mailbox | Select UserPrincipalName, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}} | Export-Csv C:\Temp\Addresses.csv

这将生成一个正确的 CSV 文件:

特别感谢 Michel de Rooij,我的 PowerShell 存储库。

相关文章