メール
 Computer >> コンピューター >  >> ソフトウェア >> メール

Exchange/Office 365のグローバルアドレス一覧(GAL)をCSVファイルへエクスポートする方法

本記事では、Exchangeのグローバルアドレス一覧(GAL)やオフラインアドレス帳をテキスト形式のCSVファイルにエクスポートする複数の方法を解説します。GALには、オンプレミスのExchange組織またはExchange Online(Office 365)テナントに登録されているすべてのメールアドレスが含まれています。社内アドレス帳からエクスポートした連絡先リストのCSVファイルを利用すれば、サードパーティ製メールクライアントやメールサービスへの連絡先の移行・取り込みが簡単に行えます。

GALのエクスポートに利用できるツールは複数あります。Exchange管理センター(EAC)PowerShellMicrosoft Access、Outlookcsvdeユーティリティなどです。

オンプレミスExchange Serverでグローバルアドレス一覧をCSVにエクスポートする方法

最も簡単なのは、Exchange管理センター(EAC)コンソールから直接アドレス一覧をエクスポートする方法です。[受信者][メールボックス]セクションに移動し、「…」ボタンをクリックして[CSVファイルへのデータのエクスポート]を選択します。

次に、CSVファイルに出力したいユーザーのプロパティ(属性)を選択できます。

ただし、この方法でエクスポートできるのはユーザーのメールアドレスのみです。配布グループのアドレスをエクスポートするには、[グループ]セクションに移動して同じ手順を実行します(連絡先、リソース、共有メールボックスも同様です)。

ドメイン内のアドレス一覧を取得するには、PowerShellコマンドレットGet-Recipientを使用します。例として、ユーザー名・SMTPアドレス・電話番号の一覧を表示する場合、PowerShellからExchange Serverに接続し、次のコマンドを実行します:

Get-Recipient | Select-Object Name,PrimarySmtpAddress,Phone

既定のグローバルアドレス一覧のエントリだけを表示するには、以下のフィルターを使用します:

$filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter
Get-Recipient -ResultSize Unlimited -RecipientPreviewFilter $filter | Select-Object Name,PrimarySmtpAddress,Phone

なお、Get-Recipientの結果はデフォルトで1000件までに制限されています。それ以上のアドレスを取得するには、-ResultSize Unlimitedパラメーターを指定してください。

アドレス帳から非表示に設定されたエントリ(HiddenFromAddressListsEnabled属性が有効なオブジェクト)を一覧から除外するには、Export-CSVコマンドレットと組み合わせて次のように実行します:

Get-Recipient -RecipientPreviewFilter $filter | Where-Object {$_.HiddenFromAddressListsEnabled -ne $true} | Select-Object Name,PrimarySmtpAddress,Phone | Export-CSV c:\exchange\GAL.csv -NoTypeInformation

GALに含まれるメールボックスの一覧は、次のコマンドでもエクスポートできます:

Get-Mailbox -ResultSize Unlimited | Where-Object {$_.AddressListMembership -like "*Default Global Address List*"} | Select-Object DisplayName,UserPrincipalName,AddressListMembership,HiddenFromAddressListsEnabled

Active Directoryから直接データを抽出する場合は、コンソールツールcsvde.exeが利用できます。メールアドレス付きのユーザーデータを出力するコマンドは、たとえば次のようになります:

CSVDE -r "(&(objectClass=person)(mail=*))" -l displayName,proxyAddresses -f Exchange-GAL.csv

この結果、次のような形式のアドレス一覧が得られます:

"CN=LondTest,OU=Service,DC=corp,DC=woshub,DC=com",LondTest,smtp:LondTest@woshub.com

さらに、AD PowerShellモジュールのGet-ADUserおよびGet-ADGroupコマンドレットを使えば、SMTPアドレスを持つユーザーやグループの一覧も取得可能です。特定のOUからSMTPアドレス(AD属性proxyAddresses)を持つユーザーリストをエクスポートする例は以下の通りです:

Get-ADUser -Filter * -SearchBase 'OU=London,OU=UK,DC=woshub,DC=com' -Properties proxyAddresses | Select-Object Name,ProxyAddresses | Export-CSV C:\PS\AD_OU_Export_GAL.csv

Exchange Online(Microsoft 365)からグローバルアドレス一覧をエクスポートする

Exchange OnlineのWeb管理画面(https://admin.exchange.microsoft.com/)には、GAL全体の内容を一括エクスポートする組み込み機能はありません。ただし、ユーザーメールボックス、配布グループ、リソースメールボックスの一覧は個別にCSVファイルへ出力できます。たとえば、[受信者][メールボックス]に移動し、[エクスポート]を選択します。

同様の手順で、連絡先、配布リスト、メールが有効なグループの一覧もエクスポートできます。

より簡単で効率的なのは、PowerShellを使ってExchange Online(Microsoft 365)テナントからGALをエクスポートする方法です。まず、EXO v2モジュールでExchange Onlineテナントに接続します:

Connect-ExchangeOnline

利用可能なグローバルアドレス一覧を確認するには、次のコマンドを実行します:

Get-GlobalAddressList | Select-Object Name

この例では「既定のグローバルアドレス一覧」のみが存在します。このアドレス一覧には、組織内のすべてのメールが有効なオブジェクト(ユーザー、グループ、配布グループなど)が含まれます。

続いて、グローバルアドレス一覧のフィルターを取得します:

$Filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter

GALにオブジェクトを追加するために使用されるフィルターは次の通りです:

((Alias -ne $null) -and (((ObjectClass -eq 'user') -or (ObjectClass -eq 'contact') -or (ObjectClass -eq 'msExchSystemMailbox') -or (ObjectClass -eq 'msExchDynamicDistributionList') -or (ObjectClass -eq 'group') -or (ObjectClass -eq 'publicFolder'))))

これで、Exchange OnlineテナントからすべてのSMTPアドレスを取得し、CSVファイルに書き出せます:

Get-Recipient -RecipientPreviewFilter $Filter | Select-Object Name,PrimarySmtpAddress,RecipientType | Export-CSV C:\PS\Export_Office365_GAL.csv -NoTypeInformation

このCSVファイルには、Exchange Onlineで利用可能なすべての受信者タイプ(UserMailbox、MailUser、MailUniversalDistributionGroup、MailContact、DynamicDistributionGroup)が出力されます。

OutlookまたはAccessからグローバルアドレス一覧をエクスポートする

Exchangeに対して管理者権限を持っていない場合でも、ユーザーのPC上でMS Office/Office 365のアプリケーションを使って組織のGALをエクスポートできます。

OutlookからGALの内容を直接エクスポートすることはできません。回避策としては、まず組織のアドレス帳からすべての受信者を個人用の連絡先リストに追加します([アドレス帳][グローバルアドレス一覧]Ctrl+A[連絡先に追加])。その後、Outlookのインポート/エクスポート機能で連絡先をCSV形式に書き出します([ファイル][開く&エクスポート][インポート/エクスポート])。この際、元の連絡先をOutlookの一時的な連絡先フォルダーにコピーしておく必要があります。ご覧の通り、あまり実用的な方法とは言えません。

最後に、管理者権限のない一般ユーザー向けの、やや地味ではありますがシンプルで確実な方法として、Microsoft AccessでExchange接続を利用してGALをエクスポートする手順を紹介します。

  1. Microsoft Accessを起動し、メニューから[ファイル][開く]を選択します。
  2. ファイルの種類で[Exchange()]を選択します。
  3. ソースの一覧から[グローバル アドレス一覧]を選択します。
  4. Exchangeアドレス帳のデータを含むフラットなAccessテーブルが生成されます。
  5. あとは、そのデータをデータベースからCSVファイルとしてエクスポートするだけです。

最後に、取得したCSVファイルをExcelに読み込み、必要に応じて編集すれば作業完了です。

  1. 【保存版】Office 365の自動アップデートを管理・無効化する完全ガイド

    Office 365サブスクリプションの大きなメリットの一つは、WordやExcelといった主要アプリが常に最新バージョンに保たれることです。しかし、中には「自動更新は自分のタイミングで行いたい」「業務中に勝手に更新されるのは困る」と考える方もいるでしょう。実は、Office 365の自動更新は簡単にオフにしたり、細かく管理したりすることが可能です。この記事では、その具体的な手順をわかりやすく解説します。 従来の.exeインストーラーでOfficeをインストールした場合 お使いのPCにMicrosoft StoreアプリとしてOffice 365がプリインストールされておらず、Webブラウザか

  2. Office 365とOffice 2019徹底比較|どちらを購入すべきか?

    ビジネスでも個人利用でも、Officeソフト選びは重要な判断です。Microsoft Officeの購入を検討しているなら、Microsoftが提供する2つのパッケージ「Office 365」と「Office 2019」の違いをしっかり理解しておく必要があります。どちらにもWord、Excel、PowerPointといった基本アプリが含まれており、いずれもMicrosoft公式サイトから購入できます。しかし、料金体系や含まれるサービスが大きく異なるため、どちらを選ぶか迷う方も多いのではないでしょうか。本記事ではOffice 365とOffice 2019を徹底的に比較し、あなたに最適な選択肢を