Búsqueda de sitios web

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,EmailAddresses

Exportar 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.csv

Lamentablemente 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.csv

Y esto dará como resultado un archivo CSV adecuado:

Un agradecimiento especial a Michel de Rooij, mi repositorio viviente de PowerShell.

Artículos relacionados