アドレス帳ポリシーを設定した場合、管理者が指定したアドレスリスト、ルームリスト、グローバル アドレス帳の参照をユーザーに割り当てることが可能となります。
作成したアドレス帳ポリシーの適用はユーザーインターフェースから指定可能となっておりますが、ポリシー作成までの作業はユーザーインターフェースから行うことができません。
アドレス帳ポリシーの割り当てについて
作成したポリシーに関しましては、オブジェクト (ユーザー、もしくは会議室など) を追加・削除した場合や情報の編集をした場合、動的に反映される動作となりますが、作成したポリシーを既定とする機能及び、グループ単位で割り当てる機能が実装されていないため、ユーザーを追加 (新規作成) した場合は、その都度アドレス帳ポリシーの割り当てが必要となります。
アドレス帳ポリシーの制限について
アドレス帳ポリシーの制限事項として、アドレス帳ポリシーをユーザーに割り当てる際は、該当ユーザー (ユーザー自身) が含まれたグローバル アドレス帳を該当のアドレス帳ポリシーに定義する必要があります。
そのため、アドレス帳に何も表示されないアドレス帳ポリシーの設定に関しては、サポートされない動作となります。
アドレス帳ポリシーの作成について
アドレス帳ポリシーの作成には、New-AddressBookPolicy コマンドレットを利用しますが、下記パラメーターにおいて該当するアドレスリストを指定する必要があります。
・AddressList
・RoomList
・GlobalAddressList
・OfflineAddressBook
各種リストの作成では、アドレスリストに含めるオブジェクトを指定する際に条件式フィルターを利用します。
条件式フィルターでは、ユーザーの詳細情報として設定されている、[都道府県]、[役職]、[ドメイン] 等の属性の他、[CustomAttribute] というオプションの属性に任意の値を指定し、利用することも可能です。
今回は、特定のドメインのアドレスのみアドレス帳に表示させるアドレス帳ポリシーの作成例となります。
1. アドレス帳ポリシーの事前準備
アドレス帳ポリシーと必要な役割について
"Address Lists" の役割を追加することによって、アドレス帳ポリシーを作成する過程で必要となる、New-AddressList や New-GlobalAddressList コマンドレットが PowerShell より利用可能となります。
- Microsoft Onlineポータル サイト(https://portal.office.com) に管理者としてサインインします。
- 画面左上のアプリランチャーより[管理センター] を選択し、[Exchange] を選択します。
- Exchange管理センターの画面左の[アクセス許可] - [管理者の役割] の順にクリックします。
- [+]ボタンをクリックし、新規作成画面を開きます。
- 任意の名前を入力します。
- 役割項目にて[+] から [Address Lists] の役割を追加し、[OK] をクリックします。
- メンバー項目にて[+] ボタンより設定を行う管理者を追加しし、[OK] をクリックします。
- [保存]をクリックし、内容を保存します。
PowerShellへの接続
以下の記事を参照し Windows PowerShell を Exchange Online に接続します。
1. アドレス帳ポリシーを作成する
下記の内容は、特定のドメインのアドレスのみアドレス帳に表示させるアドレス帳ポリシーを作成する際の実行例となります。
1.グローバル アドレス帳を作成します。
下記のコマンドレットを実行し、フィルター条件として [windowsEmailAddress] に "contoso.com" のドメインであるメールボックスのみ含めるグローバル アドレス帳を作成します。
※ こちらは、既定のグローバル アドレスリスト (ディレクトリ) と置き換わるリストとなります。
※ グローバル アドレス帳にはアドレス帳ポリシーに定義される各リストに含まれるオブジェクトが全て含まれている必要があります。
<実行例>
New-GlobalAddressList -Name "GAL A" -RecipientFilter '(WindowsEmailAddress -like "*@contoso.com")'
2.オフライン アドレス帳を作成します。
※ こちらは、既定のオフライン アドレス帳 (Outlook クライアントのみで表示) と置き換わるリストとなります。
※ 下記の、[-OfflineAddressBook] パラメーターには、項番 1. にて作成されたグローバル アドレスリストを指定します。
<実行例>
New-OfflineAddressBook -Name "OAB A" -AddressLists "GAL A"
3.アドレス帳ポリシーを作成します。
下記のコマンドレットを実行し、アドレス帳ポリシーを作成します。
※ ここまでの項番で作成した各種リストと既定のアドレスリストを利用する場合、下記のコマンドとなります。
※ 下記の、[-AddressLists] パラメーターには、カンマ (,) で区切ることで、複数のアドレスリストを指定することも可能でございます。
<実行例>
New-AddressBookPolicy -Name "ABP A" -AddressLists "All Rooms","All Users","All Contacts","All Distribution Lists","All Groups", -GlobalAddressList "GAL A" -OfflineAddressBook "OAB A"
2. ユーザーへアドレス帳ポリシーを割り当てる
下記の内容は、上記項番にて作成されたアドレス帳ポリシーをユーザーへ割り当てる際の手順となります。
<実行例>
Set-Mailbox -Identity "ユーザーのメールアドレス" -AddressBookPolicy "ABP A"
※ アドレス帳ポリシーを適用させるユーザー数が多い場合はユーザー情報を事前に CSV ファイルに出力して、一括で割り当てることが可能です。
以下のPowerShell コマンドレットを実行し、テナント内ユーザーの表示名、プライマリ SMTP アドレス、アドレス帳ポリシーの情報をエクスポートします。
Get-Mailbox -ResultSize unlimited -RecipientTypeDetails "UserMailbox" | select Displayname,PrimarySmtpAddress,AddressBookPolicy | Export-CSV -Encoding UTF8 -NoTypeInformation -Path "C:\temp\AddressBookPolicy.csv"
出力例 )
"DisplayName","PrimarySmtpAddress","AddressBookPolicy"
"test001",test001@contoso.com,""
"test002",test002@contoso.com,""
"test003",test003@contoso.com,""
"test004",test004@contoso.com,""
エクスポートしたファイルを開き、件数を調整し、AddressBookPolicy欄に設定を行いたいアドレス帳ポリシー名を入力し、CSV ファイルとして再度保存します。
アドレス帳ポリシーを適用させないユーザーをリストから、行ごと削除します。
編集例 : アドレス帳ポリシー "ABP A" を一括で適用する際の例となります。
"DisplayName","PrimarySmtpAddress","AddressBookPolicy"
"test001",test001@contoso.com,"ABP A"
"test002",test002@contoso.com,"ABP A"
"test003",test003@contoso.com,"ABP A"
例えば test001 のユーザーにはABP B のアドレス帳ポリシーを割り当てる場合は 編集時に test001 の AddressBookPolicy 列に ABP B を入力します。
<注意>
編集いただいた CSV ファイルの文字コードは、日本語などの 2 バイト文字を含む場合、UTF-8 が必須となります
もし他の文字コードをご利用の場合は文字化けが発生しますので、上記 <手順 1. アドレス帳ポリシー作成の準備> 内 [文字コードを UTF-8 に変更する手順] をご確認いただき、CSV ファイルの文字コードを UTF-8 に変更してください。
以下のPowerShell コマンドレットを実行し、指定したユーザーに対してアドレス帳ポリシーを適用します。
<実行例>
Import-csv "C:\Temp\AddressBookPolicy.csv" | Foreach {Set-Mailbox -Identity $_.PrimarySmtpAddress -AddressBookPolicy $_.AddressBookPolicy}
3. 情報を反映させる
New-AddressList や、New-GlobalAddressList で作成されたリスト内の情報については、自動で全て表示されない動作となります。
リスト内情報を全て反映させるために、[Update-Recipient] を実行ください。
例)全ての受信者オブジェクトに対して、Update-Recipient を行います。
Get-Recipient -ResultSize unlimited | foreach {Update-Recipient -Identity $_.Identity}
4. 補足事項
アドレス帳ポリシーの制限について
アドレス帳ポリシーおよび各アドレスリストに関しては、下記の最大作成数の制限があります。
- AddressList : 1000 件
- GlobalAddressList : 250 件
- OfflineAddressBook : 250 件
- AddressBookPolicy : 250 件
アドレス帳ポリシーのユーザーへの割り当てについて
アドレス帳ポリシーをユーザーに割り当てる際は、該当ユーザー自身を含めたアドレスが、グローバルアドレス帳に含まれている必要があります。
アドレス帳ポリシーを作成した際の名前解決について
アドレス帳ポリシーにより制限されているアドレス帳を利用しているユーザーでは、アドレス帳に含まれない内部のユーザーを名前解決することができない動作となります。
そのため、アドレス帳に含まれない同一テナント内の内部のユーザーにメールを送信する場合、宛先となる内部のユーザーのメールアドレスを直接指定する必要があります。