Búsqueda de sitios web

Enumere todas las direcciones SMTP con PowerShell


A veces desea enumerar todas las direcciones SMTP en Exchange Server o Exchange Online. Necesita esa lista para recopilar información porque desea eliminar de forma masiva las direcciones SMTP secundarias de los buzones de correo. El SMTP con mayúsculas es la dirección de correo electrónico principal y el smtp con minúsculas es la dirección de correo electrónico secundaria, también conocida como dirección de alias. Las direcciones de correo electrónico están configuradas como direcciones proxy en Active Directory. En este artículo, aprenderá cómo enumerar todas las direcciones SMTP con PowerShell.

Encuentre direcciones SMTP en el Centro de administración de Exchange

  1. Inicie sesión en el Centro de administración de Exchange y vaya a las propiedades de un buzón.

  2. Haga clic en dirección de correo electrónico en el menú.

  3. Ver las direcciones de correo electrónico configuradas.

Puede agregar, cambiar o eliminar una dirección de correo electrónico. Hay dos direcciones de correo electrónico SMTP configuradas para el usuario.

Encuentre direcciones SMTP en Active Directory

  1. Inicie Usuarios y computadoras de Active Directory. Después de eso, habilite las Funciones avanzadas.

  2. Vaya a las propiedades del objeto de usuario y haga clic en la pestaña del editor de atributos.

  3. Busque el atributo proxyAddresses.

Las mismas dos direcciones de correo electrónico SMTP se muestran como valores, como vimos anteriormente en el Centro de administración de Exchange.

Has visto las direcciones SMTP en ambos lugares. ¿Cómo obtener una lista de todos los buzones de correo, incluidas sus direcciones SMTP? Lea más sobre esto en la siguiente parte.

Enumere todas las direcciones SMTP principales

Ejecute Exchange Management Shell como administrador o conéctese a Exchange Online PowerShell.

Nota: Los siguientes comandos funcionan para Exchange Server local y Exchange Online.

Ejecute el cmdlet Get-Mailbox para enumerar los buzones de correo con la dirección SMTP principal.

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress | Sort-Object DisplayName

DisplayName              PrimarySmtpAddress
-----------              ------------------
Administrator            Administrator@exoip.com
Ali Tajran               Ali.Tajran@exoip.com
Amanda Morgan            Amanda.Morgan@exoip.com
Anna Welch               Anna.Welch@exoip.com
Benetiz Anees            Benetiz.Anees@exoip.com
Boris Campbell           Boris.Campbell@exoip.com
Carl Kelly               Carl.Kelly@exoip.com
Christopher Payne        Christopher.Payne@exoip.com
Discovery Search Mailbox MsExchDiscoveryMailboxD919BA05-46A6-415f-80AD-7E09334BB852@exoip.com
Elizabeth Roberts        Elizabeth.Roberts@exoip.com
Emma Underwood           Emma.Underwood@exoip.com
Hannah Walker            Hannah.Walker@exoip.com
Jake Cornish             Jake.Cornish@exoip.com

Ejecute el cmdlet Get-Recipient si desea obtener todos los objetos de la organización. Esto obtendrá los buzones de correo, los grupos de distribución, los grupos de seguridad y los contactos.

[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress | Sort-Object DisplayName

En nuestra organización Exchange, tenemos más de una dirección de correo electrónico para el mismo buzón. En la siguiente parte, enumeraremos estas direcciones de correo electrónico secundarias.

Listar todas las direcciones de correo electrónico SMTP

En la parte anterior, enumeramos la dirección SMTP principal de cada buzón de correo de la organización Exchange. Ahora nos gusta tener una lista que incluya las direcciones SMTP secundarias. ¿Cómo agregaremos esto al cmdlet de PowerShell existente?

Vamos a hacer uso del bloque de script. Un bloque de script es una colección de declaraciones o expresiones que se pueden utilizar como una sola unidad. Al usarlo, recopilará todas las direcciones de correo electrónico SMTP. Tenga en cuenta que el SMTP está escrito en letras minúsculas porque no es el SMTP principal. El SMTP principal está escrito en letras mayúsculas.

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName

DisplayName              PrimarySmtpAddress                                                   EmailAddresses
-----------              ------------------                                                   --------------
Administrator            Administrator@exoip.com                                              Administrator@exoip.local
Ali Tajran               Ali.Tajran@exoip.com
Amanda Morgan            Amanda.Morgan@exoip.com                                              Amanda.Morgan@alitajran.com
Anna Welch               Anna.Welch@exoip.com
Benetiz Anees            Benetiz.Anees@exoip.com
Boris Campbell           Boris.Campbell@exoip.com                                             Boris.Campbell@contoso.com, Boris.Campbell@alitajran.com
Carl Kelly               Carl.Kelly@exoip.com
Christopher Payne        Christopher.Payne@exoip.com
Discovery Search Mailbox MsExchDiscoveryMailboxD919BA05-46A6-415f-80AD-7E09334BB852@exoip.com DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852}@exoip.local
Elizabeth Roberts        Elizabeth.Roberts@exoip.com
Emma Underwood           Emma.Underwood@exoip.com
Hannah Walker            Hannah.Walker@exoip.com
Jake Cornish             Jake.Cornish@exoip.com

Ejecute el cmdlet Get-Recipient si desea obtener todos los objetos de la organización. Esto obtendrá los buzones de correo, los grupos de distribución, los grupos de seguridad y los contactos.

[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName

Agregue el cmdlet OutGrid-View al final del comando para generar la información en una ventana de vista de cuadrícula.

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Out-GridView
[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Out-GridView

Exportar los resultados a un archivo CSV

Exporte los resultados a un archivo CSV en la ruta C:\temp.

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Export-CSV "C:\temp\List_SMTP_Addresses.csv" -NoTypeInformation -Encoding UTF8
[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Export-CSV "C:\temp\List_SMTP_Addresses.csv" -NoTypeInformation -Encoding UTF8

Abra el archivo CSV exportado con Microsoft Excel o cualquier otro editor/visor de archivos CSV.

¡Todo luce genial! Espero que te haya ayudado a exportar todas las direcciones de correo electrónico a un archivo CSV.

Leer más: Exportar permisos de carpeta del buzón a un archivo CSV »

Conclusión

Aprendió a enumerar todas las direcciones SMTP en Exchange Server y Exchange Online con PowerShell. Ejecute los comandos para obtener una lista de los buzones de correo con direcciones SMTP. Exporte la lista a CSV y revísela con Microsoft Excel.

Disfrutaste este artículo? También te puede interesar Encuentra la dirección SMTP que falta con PowerShell. No olvides seguirnos y compartir este artículo.

Artículos relacionados