Office365 アドレス帳ポリシー 作成備忘録

施設管理・備品管理をOffice365で管理にあたっては、やや厄介だ。

※この記事は、編集中です。個人的に完成できた時点で、執筆終了となります※

施設や備品は、他のメールアドレスと同様にアドレス帳内で管理されるためだ。しかし、本社所属ユーザは、本社施設や本社備品だけを表示させる、ということは可能であり、これを活用するには、「アドレス帳ポリシー」で対応できるとのことで、一応備忘録となります。

(参考)
● アドレス帳ポリシー(Technet)
● シナリオ: アドレス帳ポリシーの展開(Technet)

マイクロソフトテクニカルサポートに確認したところ、わかりやすい回答が来たので、それを備忘録としていきたい。

——————–

<前提条件>
本件でご案内させていただくアドレス帳ポリシーは、[All Rooms] に対して参照制限を設ける設定となります。
そのため、Outlook on the web の予定表画面にて [会議室の追加] を押下した際は会議室の参照が制限されますが、Outlook on the web の連絡先画面のディレクトリや、All Usersでは会議室の参照が制限されない動作となります。また、Outlook クライアントにおいては会議室を選択した際、アドレス帳が表示される動作となりますため、グローバルアドレス一覧や、All Users等を選択することで、会議室の指定が可能となります。なお、下記設定については、一例として ”本部会議室” としておりますが、事業所に合わせて13 か所分の設定する必要がございますので、予めご理解賜りますようお願い申し上げます。

———————————————–
手順 1. アドレス帳ポリシー作成の準備
———————————————–
[アドレス帳ポリシーの制限について] アドレス帳ポリシー及び各アドレスリストに関しましては、下記の最大作成数の制限がございます。
– AddressList : 1000 件
– GlobalAddressList : 250 件
– OfflineAddressBook : 250 件
– AddressBookPolicy : 250 件

【新機能】アドレス帳ポリシー(その2)(日々徒然)によると、2013年記事と比較し、相当グレードアップしていることがわかる。

上記でご案内している制限値に関しましては、下記のサイトにも記載がございますので、ご参照いただけますと幸いでございます。
Title : Address book limits (英語)
URL : http://technet.microsoft.com/en-us/library/exchange-online-limits.aspx#abl

[ご利用可能なプランに関して] アドレス帳ポリシーにはご契約プランによる制限がございます。(E1 / E3 とかは、特に制限はなかった。)

下記に、Exchange Online におけるプラン毎の利用可能な機能を記載したサイトをご案内いたしますのでご参照いただけますと幸いでございます。

Title : Exchange Online サービスの説明 (日本語)
URL : http://technet.microsoft.com/ja-jp/library/exchange-online-service-description.aspx
※ [アドレス帳ポリシー] 項目をご参照ください。

 

[アドレス帳ポリシーと必要な役割について]

“Address List” の役割を追加することによって、アドレス帳ポリシーを作成する過程で必要となる、New-AddressList や New-GlobalAddressList コマンドレットが PowerShell より利用可能となります。下記の内容は、[Exchange 管理センター] にてアドレス帳ポリシーを作成する際に必要な Address List の役割を割り当てる際の手順となります。

ただ、【新機能】アドレス帳のカスタマイズ(日々徒然)によると、「Organization ManagementにAddress Listsの権限を付与」というサンプルが掲載されていた。Office365を1部署(1人)で管理している場合は、複数の管理者の役割をあえて作るより、既存の役割に追加した方が、管理がすっきりするだろうな、と思った。

1. Microsoft Online ポータル サイト (https://portal.office.com) に管理者としてサインインします。
2. 画面左上のアプリランチャーより [管理者] を選択し、[Exchange] を選択します。
2. Exchange 管理センターの画面左の [アクセス許可] – [管理者の役割] の順にクリックします。
3. [+] ボタンをクリックし、新規作成画面を開きます。
4. 任意の名前を入力します。
5. 役割項目にて [+] から [Address Lists] の役割を追加します。
5. メンバー項目にて [+] ボタンより設定を行う管理者を追加します。
6. [保存] をクリックし、内容を保存します。

割り当てた権限設定が反映されるまでに少々お時間がかかる場合がございますので、予めご了承くださいますようお願い申し上げます。
上記手順完了後、下記の PowerShell コマンドレットを実行くださいますようお願い申し上げます。

<補足情報>
アドレス帳ポリシーの作成には、New-AddressBookPolicy コマンドレットを利用いたしますが、下記パラメーターにおいて該当するアドレスリストを指定する必要がございます。
そのため、New-AddressBookPolicy コマンドレットにてアドレス帳ポリシーを作成する際には、事前に下記パラメーターで指定するアドレスリストを作成しておく必要がございます。

・AddressList
・RoomList
・GlobalAddressList
・OfflineAddressBook

各種アドレスリストの作成では、アドレスリストに含めるオブジェクト (ユーザー、もしくは会議室など) を指定する際に条件式フィルターを利用いたします。
条件式フィルターでは、ユーザーの詳細情報として設定されている、[都道府県]、[役職]、[ドメイン] 等の属性の他、[CustomAttribute] というオプションの属性に任意の値を指定し、利用することも可能でございます。
※ [CustomAttribute] 属性は、[CustomAttribute1] から [CustomAttribute15] まで指定することが可能でございます。

カスタム属性
うまく反映されないことがあり、この場合は、手順7でリセットすることで、反映されることもあるらしい。ただ、この手順7の2行を実施した場合は、項目値も消えるので、ちょっと面倒になる。

今回の場合を例にしますと、本社会議室の [CustomAttribute1] 属性に “本社” と予め指定しておくことにより、アドレスリストの公開を制限する際の条件として [CustomAttribute1] が “本社” の会議室という指定が可能となります。

[CustomAttribute] 属性の指定は、下記のコマンドレットにて設定することが可能でございます。

1. コマンドレット基本構文
1-1. ユーザーに [CustomAttribute1] 属性を設定する。
Set-MailBox -Identity “対象メールボックスのメールアドレス。” -CustomAttribute1 “任意の値を指定します。”

2. コマンドレット実行例
2-1. 会議室メールボックス “RoomA@contoco.onmicrosoft.com” の [CustomAttribute1] に “本社” と設定する際の例となります。
Set-MailBox -Identity “RoomA@contoco.onmicrosoft.com” -CustomAttribute1 “本社”

※ Active Directory (以下 AD) 同期環境の場合、属性の設定に関しましては、AD 側での設定が必要となります。
なお、[CustomAttribute] 属性に関しましては、AD 同期されたオブジェクトの場合、AD 側で [extensionAttribute] 属性を更新し、ディレクトリ同期を実行することで Exchange Online 側に反映される属性となります。

※ 条件式に指定可能な属性に関しましては、下記サイトにてご案内しております。
Exchange Server 2013 の情報となりますが、Exchange Online にも適用可能な内容が多数含まれておりますので、ご参考としていただければ幸いです。

Title: -RecipientFilter パラメーターのフィルター可能なプロパティ
URL: http://technet.microsoft.com/ja-JP/library/bb738157(v=exchg.150).aspx

 

———————————————–
手順 2. PowerShellへの接続
———————————————–
アドレス帳ポリシーの作成に必要なコマンドレットを使用するために、下記のコマンドレットを入力し PowerShell へ接続します。

1. $LiveCred = Get-Credential
2. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $LiveCred -Authentication Basic -AllowRedirection
3. Import-PSSession $Session -AllowClobber

———————————————–
手順 3. ルームリストを作成する
———————————————–
下記のコマンドレットを実行し、アドレスリストを作成します。

1. コマンドレット基本構文

New-AddressList -Name “アドレスリスト名” -RecipientFilter ‘<アドレスリストに含めるオブジェクトのフィルター条件>’
2. コマンドレット実行例
2-1. 下記の実行例は、”本社会議室” というアドレスリストを作成し、フィルター条件として [CustomAttribute1] に “本社” と指定している会議室のみを含める際の例となります。

会議室名とかに「( 」「 )」かっこ が含まれている場合には、エラーが出たので、「 _ 」とかで代用した方が良い。

New-AddressList -Name “本社会議室” -RecipientFilter ‘((Alias -ne $null) -and (CustomAttribute1 -eq “本社”) -and (RecipientTypeDetails -eq “RoomMailbox”))’

何度も実行すると、空のルームリストが作成されてしまう。間違えて作ってしまったルームリストは、Removeコマンドで削除ができる。

<アドレスリストを削除>
[構文] Remove-AddressList -Identity “アドレスリスト名” -Confirm:$False

[実行例] Remove-AddressList -Identity “会議室A” -Confirm:$False

<アドレスリスト名を変更>
[構文] Set-AddressList -Identity “アドレスリスト名” -Name “新しいアドレスリスト名” -DisplayName “新しい表示名”

[実行例] Set-AddressList -Identity “会議室A” -Name “会議室C” -DisplayName “会議室C”

参考情報といたしまして、アドレス帳ポリシー適用後にアドレスリストを削除する場合には一度ポリシーを解体した後にアドレスリストを削除していただきますようお願いいたします。

<ポリシーを解体(枠組みを無くす)>
Remove-AddressBookPolicy -Identity “ポリシー名” -Confirm:$False

 

———————————————–
手順 4. アドレスリスト、グローバル アドレスリスト、オフライン アドレスリストを作成する
———————————————–
本件では、既定のアドレスリスト、グローバル アドレスリスト及び、オフライン アドレスリストを使用するため、今回は作成いたしません。

———————————————–
手順 5. アドレス帳ポリシーを作成する
———————————————–

下記の内容は、アドレス帳ポリシーを作成する際の手順となります。

1. コマンドレット基本構文
New-AddressBookPolicy -Name “アドレス帳ポリシー名” -AddressLists “作成されたアドレスリスト名” -RoomList “作成されたルームリスト名” -GlobalAddressList “作成されたグローバル アドレスリスト名” -OfflineAddressBook “作成されたオフライン アドレスリスト名”

2. コマンドレット実行例
2-1. 下記の実行例は、上記の <3. ルームリストを作成する> 内の項番 2-1 で作成したルームリストと既定の各アドレスリストを含めた、”ABP A” というアドレス帳ポリシーを作成する際の例となります。

New-AddressBookPolicy -Name “ABP A” -AddressLists “All Users”,”Offline Global Address List”,”All Contacts”,”All Distribution Lists”,”All Groups” -RoomList “本社会議室” -GlobalAddressList “Default Global Address List” -OfflineAddressBook “Default Offline Address Book”

<補足>
アドレス帳ポリシーを作成する際の、[-AddressLists] パラメーターには複数のアドレスリストを指定することが可能でございます。

———————————————–
手順 6. ユーザーへアドレス帳ポリシーを割り当てる
———————————————–
下記の内容は、上記項目にて作成されたアドレス帳ポリシーをユーザーへ割り当てる際の手順となります。
方法といたしましては、ポータル サイト上 (GUI 上) から行う場合と Windows PowerShell から行う場合の 2 通りの方法がございます。

<1. GUI 上から割り当てる方法>
1. Microsoft Online ポータル サイト (https://portal.office.com) に管理者としてサインインします。
2. [管理者] の [Exchange] を選択します。
3. [Exchange 管理センター] に移動し、メールボックスの一覧が表示されていることを確認します。
4. ポリシーの設定を行いたいユーザーのメールボックスをダブルクリックします。
5. メールボックスの詳細設定画面が表示されますので、[メールボックスの機能] をクリックします。
6. [アドレス帳ポリシー] のドロップダウンリストより、上記にて作成したポリシーを選択し、[保存] をクリックします。

<2. Windows PowerShell から割り当てる方法>
下記のコマンドレットを実行し、対象ユーザーにアドレス帳ポリシーを割り当てます。

– 基本構文
Set-Mailbox -Identity “アドレス帳ポリシーを割り当てるユーザーのメールアドレス” -AddressBookPolicy “アドレス帳ポリシー名”

– 実行例 : テストユーザー “test001@contoso.onmicrosoft.com” にアドレス帳ポリシー “ABP A” を割り当てる例となります。
Set-Mailbox -Identity “test001@contoso.onmicrosoft.com”-AddressBookPolicy “ABP A”

<3. アドレス帳ポリシーを一括で割り当てる方法>
下記手順にて、CSV ファイルのエクスポート / インポートを実行することで、複数ユーザーに対し、アドレス帳ポリシーを適用することが可能でございます。

※ アドレス帳ポリシーを適用させるユーザー数が多い場合につきましては、タイムアウトのエラーが発生する可能性がございますため、1,000 名前後で CSV ファイルを分けていただき、インポートを実行いただけますようお願い申し上げます。

a. 以下の 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.onmicrosoft.com“,””
“test002″,”test002@contoso.onmicrosoft.com“,””
“test003″,”test003@contoso.onmicrosoft.com“,””
“test004″,”test004@contoso.onmicrosoft.com“,””
※ メモ帳で開いた場合のサンプルとなります。

b. エクスポートしたファイルを開き、ポリシーを適用させないユーザーを除外します。
除外が完了したら、AddressBookPolicy 欄に設定を行いたいアドレス帳ポリシー名を入力します。
CSV ファイルとして再度保存します。

編集例 : アドレス帳ポリシー “ABP A” を一括で適用する際の例となります。
“DisplayName”,”PrimarySmtpAddress”,”AddressBookPolicy”
“test001″,”test001@contoso.onmicrosoft.com”,”ABP A”
“test003″,”test003@contoso.onmicrosoft.com”,”ABP A”

<注意>
編集いただいた CSV ファイルの文字コードは、日本語などの 2 バイト文字を含む場合、UTF-8 が必須となります
もし他の文字コードをご利用の場合は文字化けが発生いたしますので、下記内容をご確認いただき、CSV ファイルの文字コードを UTF-8 に変更していただきますようお願い申し上げます。

[文字コードを UTF-8 に変更する手順] 1. CSV ファイルの拡張子を txt に変更します。
2. 作成した CSV ファイルを右クリックし、[プログラムから開く] – [メモ帳] の順にクリックします
3. 開いたメモ帳で [ファイル] – [名前を付けて保存] の順にクリックします。
4 . ファイルの種類で「すべてのファイル」を選択します。
5. 文字コードで「UTF-8」を選択します。
6. [保存] をクリックします。
7. 拡張子txt.を CSV に戻します。

c. 以下の PowerShell コマンドレットを実行し、指定したユーザーに対してアドレス帳ポリシーを適用します。
実行例)
上記項番 b で作成いただいたCSV ファイルのフルパス名を C:\Temp\AddressBookPolicy.csv とした時
Import-csv “C:\Temp\AddressBookPolicy.csv” | Foreach {Set-Mailbox -Identity $_.PrimarySmtpAddress -AddressBookPolicy $_.AddressBookPolicy}

d. 再度、項番 a のコマンドレットを実行し、正常にアドレス帳ポリシーが変更されているか確認します。

———————————————–
手順 7. 情報を反映させる
———————————————–
New-AddressList や、New-GlobalAddressList で作成されたリスト内の情報に関しましては、表示対象のオブジェクトが一部表示されない可能性がございます。
リスト内情報を即座に反映させるためには、メールボックスやグループに対し任意の属性を変更する必要がございます。
例えば、CustomAttribute 属性にダミーとなる値を指定する方法がございます。

New-AddressList や、New-GlobalAddressList で作成されたリスト内の情報に関しましては、表示対象のオブジェクトが一部表示されない可能性がございます。
リスト内情報を即座に反映させるためには、メールボックスやグループに対し任意の属性を変更する必要がございます。
例えば、CustomAttribute 属性にダミーとなる値を指定する方法がございます。

例)
下記のコマンドでは、一時的に CustomAttribute15 属性に Dummy という値を設定し、その後 Null を指定することによって変更を元に戻すという任意の値の変更を行っております。

[会議室メールボックスの属性を変更するコマンドレット]
Get-Mailbox -ResultSize unlimited -RecipientTypeDetails “RoomMailbox” | Set-Mailbox -CustomAttribute15 Dummy
Get-Mailbox -ResultSize unlimited -RecipientTypeDetails “RoomMailbox” | Set-Mailbox -CustomAttribute15 $null

なお、New-AddressList や、New-GlobalAddressList で作成されたリスト内にディレクトリ同期オブジェクトが含まれている場合は、該当のオブジェクトに対し、オンプレミス 側で何らかの属性 (extensionAttribute15 属性等) の更新を行い、ディレクトリ同期が行われることでアドレス一覧へ反映される動作となります。

<参考情報>
本項でご案内している内容に関しましては、下記の URL にも記載がございます。
本メールとあわせてご参考としていただけましたら幸いでございます。

Title: Exchange Online で作成した新しいアドレス帳に、一部の受信者が含まれない
URL: http://support2.microsoft.com/kb/2955640/ja

———————————————–
□ 補足事項
———————————————–
<アドレス帳ポリシーを作成した際の名前解決について>
アドレス帳ポリシーにより制限されているアドレス帳を利用しているユーザーでは、アドレス帳に含まれない内部のユーザーを名前解決することができない動作となります。
そのため、アドレス帳に含まれない同一テナント内の内部のユーザーにメールを送信する場合、宛先となる内部のユーザーのメールアドレスを直接指定する必要がございます。

◆ 参考資料
アドレス帳ポリシーの作成には十分な計画な必要となります。
下記情報は、オンプレミスの Exchange Server 2013 と Exchange Online が複合している資料となりますが、アドレス帳ポリシーの準備、計画、展開には十分役立つ情報となっておりますので、ご参考としていただけましたら幸いでございます。

Title : アドレス帳ポリシー
URL : http://technet.microsoft.com/ja-jp/library/hh529948(v=exchg.150).aspx

Title : シナリオ: アドレス帳ポリシーの展開
URL : http://technet.microsoft.com/ja-jp/library/jj657455(v=exchg.150).aspx

Title : アドレス帳ポリシーに関連する手順
URL : http://technet.microsoft.com/ja-jp/library/jj891096(v=exchg.150).aspx