場合によっては、Exchange 組織内の電子メール アドレスの完全なリストをエクスポートすることが必要になる場合があります。この記事では、PowerShell を使用して、割り当てられたすべての SMTP アドレスを取得し、Exchange Server または Microsoft 365 (Exchange Online) の CSV ファイルにエクスポートする方法を説明します。
Exchange 組織に接続します。
- Exchange 管理シェル (EMS) モジュールを使用してオンプレミスの Exchange Server を管理したり、通常の PowerShell コンソールから Exchange にリモートで接続したりできます。
- Exchange Online PowerShell モジュール (EXO) を使用して Microsoft 365 テナントに接続します。証明書ベースの認証を使用して、PowerShell 内から Exchange Online にサインインできます。
特定の Exchange メールボックスのすべてのプライマリ SMTP アドレスと追加 SMTP アドレスを表示するには、次のコマンドを実行します。
Get-Mailbox testmax |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses|fl

- の
SMTP大文字のアドレスにはプライマリ電子メール アドレスが含まれます - 小文字
smtp値はセカンダリ (エイリアス) 電子メール アドレスです。
proxyAddresses 属性は、オンプレミスの Active Directory で電子メール配信アドレスを設定するために使用されます。
ご覧のとおり、ユーザーにはいくつかの追加 SMTP アドレスが割り当てられ、それらは EmailAddresses 文字列属性に保存されます。この属性には他の種類のアドレスが存在する可能性があるため、メールボックスのすべての SMTP アドレスのリストを取得するには、以下のコマンドを実行します。
推奨読書:Exchange 受信コネクタからリモート IP アドレスを削除する
Get-Mailbox testmax | Select-Object DisplayName,PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}
次のコマンドは、Exchange 内のすべてのユーザー メールボックスと共有メールボックスのすべてのプライマリ アドレスとエイリアスを表示し、結果を 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
のメールボックスの取得コマンドレットは、ユーザーと共有メールボックスに関する情報のみを表示します。
Active Directory (または Azure AD) には、SMTP アドレスが割り当てられた他の種類のオブジェクト (メールが有効なオブジェクト) が存在する場合があります: 配布グループ、連絡先、Microsoft 365 グループ (Entra ID の統合グループ)。を使用します。受信者の取得Exchange 組織/テナント内のすべてのオブジェクトの SMTP アドレスを一覧表示するコマンドレット:
Get-Recipient -ResultSize Unlimited | Select-Object DisplayName, RecipientType, PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}


この場合、すべての種類の Exchange オブジェクトの SMTP アドレスのリストがあります。特定のオブジェクト タイプの SMTP アドレスのみをエクスポートするには、次のパラメーターを最初のコマンドレットに追加します。
Get-Recipient -ResultSize Unlimited -RecipientType your_object_type | …
考えられる Exchange オブジェクトのタイプ:
- 動的配布グループ
- メール連絡先
- メール非ユニバーサルグループ
- MailUniversalDistributionGroup
- MailUniversalSecurityGroup
- メールユーザー
- パブリックフォルダー
- ユーザーメールボックス
同じ (重複した) 受信者 SMTP アドレスを持つ Exchange オブジェクトを検索する必要がある場合は、次のコマンドを実行します。
Get-Recipient -resultsize unlimited | where {$_.EmailAddresses -like "*[email protected]*"}
Exchange で SMTP アドレスのフラット リストを取得することもできます。
Get-Recipient | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_.Replace("smtp:", "").Replace("SMTP:", "") }


Microsoft Teams チャネル用の一意の SMTP アドレスも生成されました。
Exchange 組織内の一意の SMTP アドレスの数を表示します。
Get-Recipient -ResultSize Unlimited | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" }| measure-object




![iPhoneでアプリをロックする方法iOS 17/18 [詳細ガイド]](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/05/how-to-lock-apps-on-iphone-ios-17.png)









