Čas od času může být nutné exportovat úplný seznam e-mailových adres ve vaší organizaci Exchange. V tomto článku si ukážeme, jak získat a exportovat všechny přiřazené adresy SMTP do souboru CSV na Exchange Server nebo Microsoft 365 (Exchange Online) pomocí PowerShellu.
Připojte se k vaší organizaci Exchange:
- Modul Exchange Management Shell (EMS) můžete použít ke správě místního Exchange Serveru nebo se můžete k Exchange připojit vzdáleně z běžné konzoly PowerShellu;
- Pomocí modulu Exchange Online PowerShell (EXO) připojte tenanta Microsoft 365. K přihlášení k Exchange Online z prostředí PowerShell můžete použít ověřování na základě certifikátu.
Chcete-li zobrazit všechny primární a další adresy SMTP pro konkrétní poštovní schránku Exchange, spusťte tento příkaz:
Get-Mailbox testmax |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses|fl

- The
SMTPadresa velkými písmeny obsahuje primární e-mailovou adresu - Malá písmena
smtphodnoty jsou sekundární (alias) e-mailové adresy.
Atribut proxyAddresses se používá k nastavení adresy pro doručování e-mailů v místní službě Active Directory.
Jak vidíte, uživateli je přiřazeno několik dalších adres SMTP, které jsou uloženy v řetězcovém atributu EmailAddresses. V tomto atributu mohou být i jiné typy adres, takže pro získání seznamu všech SMTP adres poštovní schránky spusťte níže uvedený příkaz:
Get-Mailbox testmax | Select-Object DisplayName,PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}
Následující příkaz zobrazí všechny primární adresy a aliasy pro všechny uživatelské poštovní schránky a sdílené poštovní schránky na Exchange a exportuje výsledky do souboru 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 zobrazuje pouze informace o uživatelích a sdílených poštovních schránkách.
Další informace:Odesílání e-mailů z prostředí PowerShell přes Exchange Server
Ve službě Active Directory (nebo Azure AD) mohou být další typy objektů s přiřazenými adresami SMTP (objekty s povolenou poštou): distribuční skupiny, kontakty a skupiny Microsoft 365 (Unified Groups v Entra ID). PoužijteZískejte příjemcecmdlet k zobrazení seznamu adres SMTP všech objektů v organizaci/tenantovi Exchange:
Get-Recipient -ResultSize Unlimited | Select-Object DisplayName, RecipientType, PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}


V tomto případě máme seznam SMTP adres všech typů objektů Exchange. Chcete-li exportovat pouze adresy SMTP určitého typu objektu, přidejte do první rutiny následující parametr
Get-Recipient -ResultSize Unlimited -RecipientType your_object_type | …
Možné typy objektů Exchange:
- DynamicDistributionGroup
- MailContact
- MailNonUniversalGroup
- MailUniversalDistributionGroup
- MailUniversalSecurityGroup
- Uživatel pošty
- PublicFolder
- Uživatelská schránka
Pokud potřebujete najít objekty Exchange se stejnou (duplicitní) adresou SMTP příjemce, spusťte:
Get-Recipient -resultsize unlimited | where {$_.EmailAddresses -like "*[email protected]*"}
Můžete také získat plochý seznam SMTP adres na Exchange:
Get-Recipient | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_.Replace("smtp:", "").Replace("SMTP:", "") }


Pro kanál Microsoft Teams byly také vygenerovány jedinečné adresy SMTP.
Zobrazení počtu jedinečných adres SMTP ve vaší organizaci Exchange:
Get-Recipient -ResultSize Unlimited | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" }| measure-object














