🖊️

Microsoft Graph APIで特定のビル・会議室だけを取得したい

2022/01/25に公開

タイトルがGraph APIと記載していますが、実際はPowerShellで設定していきます。

結論から言うと

  1. AddressBookPolicyを作成する
  2. UserにAddressBookPolicyに紐付ける

を設定すれば Graph APIの /findrooms などの会議室取得APIでポリシーが適用された会議室が取得されます。
places/microsoft.graph.roomplaces/microsoft.graph.roomlists はテナント全体を必ず取得してくるようなので、ポリシーは適用されない

AddressBookPolicyの作成

CustomAttribute1Tokyo が設定されているもののみ取得するように設定していきます。

  1. GlobalAddressListの作成
New-GlobalAddressList -Name "TokyoGAL" -RecipientFilter {(CustomAttribute1 -eq "Tokyo")}
  1. AddressListの作成(配布グループを対象)
New-AddressList -Name "TokyoAL" -RecipientFilter {((RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (CustomAttribute1 -eq "Tokyo")}

※ ユーザーも対象にする場合、RecipientType -eq "UserMailBox" を追加

  1. RoomListの作成
New-AddressList -Name "TokyoRooms" -RecipientFilter {(Alias -ne $null) -and (CustomAttribute1 -eq "Tokyo")-and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}
  1. OfflineAddressBookの作成
New-OfflineAddressBook -Name "TokyoOAB" -AddressLists "TokyoGAL"
  1. AddressBookPolicyの作成
New-AddressBookPolicy -Name "TokyoABP" -AddressLists "\TokyoAL" -OfflineAddressBook "\TokyoOAB" -GlobalAddressList "\TokyoGAL" -RoomList "\TokyoRooms"

AddressListsOfflineAddressBookGlobalAddressListRoomList は必須項目のようで設定しないエラーになる

UserにAddressBookPolicyを紐づける

  1. AddressBookPolicyの作成
Set-Mailbox -AddressBookPolicy TokyoABP
↓ 以下が聞かれる
cmdlet Set-Mailbox at command pipeline position 1
Supply values for the following parameters:
Identity: {User-Identity}

ポリシーを適用したユーザーが会議室を取得する場合、Tokyoの会議室のみで取得されます。
※ 反映に時間かかるみたいで設定したときは、翌日に反映されました。

Discussion