在 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 存储库。