Obțineți toate adresele SMTP (e-mail) folosind PowerShell în Exchange

Din când în când, poate fi necesar să exportați lista completă de adrese de e-mail din organizația dvs. Exchange. În acest articol, vom arăta cum să obțineți și să exportați toate adresele SMTP atribuite într-un fișier CSV în Exchange Server sau Microsoft 365 (Exchange Online) folosind PowerShell.

Conectați-vă la organizația dvs. Exchange:

  • Puteți utiliza modulul Exchange Management Shell (EMS) pentru a gestiona serverul Exchange local sau vă puteți conecta la Exchange de la distanță dintr-o consolă PowerShell obișnuită;
  • Utilizați modulul Exchange Online PowerShell (EXO) pentru a conecta chiriașul Microsoft 365. Puteți utiliza autentificarea pe bază de certificat pentru a vă conecta la Exchange Online din PowerShell.

Pentru a vedea toate adresele SMTP primare și suplimentare pentru o anumită cutie poștală Exchange, rulați această comandă:

Get-Mailbox testmax |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses|fl

  • TheSMTPadresa în majuscule conține adresa de e-mail principală
  • Literele micismtpvalorile sunt adresele de e-mail secundare (alias).

Atributul proxyAddresses este utilizat pentru a seta adresa de livrare a e-mailului în Active Directory local.

După cum puteți vedea, unui utilizator i se atribuie mai multe adrese SMTP suplimentare, care sunt stocate în atributul șir EmailAddresses. Pot exista și alte tipuri de adrese în acest atribut, așa că pentru a obține o listă cu toate adresele SMTP ale unei căsuțe poștale, executați comanda de mai jos:

Get-Mailbox testmax | Select-Object DisplayName,PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}

Următoarea comandă afișează toate adresele și aliasurile principale pentru toate cutiile poștale ale utilizatorilor și cutiile poștale partajate în Exchange și exportă rezultatele într-un fișier CSV:

Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }} | Export-Csv "C:PSList-All-SMTP-Addresses.csv" -NoTypeInformation -Encoding UTF8

TheGet-Mailboxcmdlet-ul afișează numai informații despre utilizatori și cutiile poștale partajate.

În Active Directory (sau Azure AD), pot exista și alte tipuri de obiecte cu adrese SMTP atribuite (obiecte activate prin e-mail): grupuri de distribuție, contacte și grupuri Microsoft 365 (grupuri unificate în Entra ID). UtilizațiObține-Destinatarcmdlet pentru a lista adresele SMTP ale tuturor obiectelor dintr-o organizație/chiriaș Exchange:

Get-Recipient -ResultSize Unlimited | Select-Object DisplayName, RecipientType, PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}

În acest caz, avem o listă cu adresele SMTP ale tuturor tipurilor de obiecte Exchange. Pentru a exporta numai adrese SMTP ale unui anumit tip de obiect, adăugați următorul parametru la primul cmdlet

Get-Recipient -ResultSize Unlimited -RecipientType your_object_type | …

Tipuri posibile de obiecte Exchange:

  • DynamicDistributionGroup
  • MailContact
  • MailNonUniversalGroup
  • MailUniversalDistributionGroup
  • MailUniversalSecurityGroup
  • MailUser
  • PublicFolder
  • Cutia poștală utilizator

Dacă trebuie să găsiți obiecte Exchange cu aceeași adresă SMTP a destinatarului (duplicat), rulați:

Get-Recipient -resultsize unlimited | where {$_.EmailAddresses -like "*[email protected]*"}

Citește și:Eliminați adresele IP de la distanță din conectorul de primire Exchange

De asemenea, puteți obține o listă simplă de adrese SMTP în Exchange:

Get-Recipient | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_.Replace("smtp:", "").Replace("SMTP:", "") }

Au fost generate și adrese SMTP unice pentru canalul Microsoft Teams.

Vedeți numărul de adrese SMTP unice din organizația dvs. Exchange:

Get-Recipient -ResultSize Unlimited | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" }| measure-object

Related Posts