Exportar direcciones de correo electrónico en Exchange 2013
Para un proyecto tuve que crear un archivo CSV con todos los buzones, su UPN y sus direcciones de correo electrónico. No es gran cosa ya que puedes usar el siguiente comando:
Get-Mailbox | Select UserPrincipalName,EmailAddressesExportar a un CSV es una característica predeterminada en PowerShell usando el comando Exportar-Csv, como este:
Get-Mailbox | Select UserPrincipalName,EmailAddresses | Export-Csv C:\Temp\Addresses.csvLamentablemente esto no da el resultado deseado. Dado que la propiedad EmailAddresses es una propiedad de valores múltiples, solo se exporta la definición y no los valores, y se mostrará así:
#TYPE Seleccionado.Microsoft.Exchange.Data.Directory.Management.Mailbox
“Nombre principal de usuario”,”Direcciones de correo electrónico”
“Michael@azurelabs.nl”,”Microsoft.Exchange.Data.ProxyAddressCollection”
Esto se puede resolver creando un campo personalizado y tomando todos los valores de la propiedad, unidos con un carácter ",", como este:
Get-Mailbox | Select UserPrincipalName, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}}Combine esto con el comando Exportar-Csv:
Get-Mailbox | Select UserPrincipalName, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}} | Export-Csv C:\Temp\Addresses.csvY esto dará como resultado un archivo CSV adecuado:
Un agradecimiento especial a Michel de Rooij, mi repositorio viviente de PowerShell.