Teams Phoneで代理人を利用する場合、最大25名までの代理人ユーザーを設定できます。
この代理人設定の内容を、GUIのTeams管理センターより確認しようとすると、ユーザーの多さや各ユーザーに設定できる項目の多さで、見落としが発生したり時間がかかったりします。
PowerShellコマンドで代理人ユーザーの一覧を取得することにより、効率的に代理人設定の確認を行うことができます。
GUIでの確認方法
管理者にて確認する場合、Teams管理センターの[ユーザー]>[ユーザーを管理]を開き、一覧から代理人(親となるユーザー)を検索して詳細画面を開きます。
詳細画面の[音声]タブ内の[代理呼び出し]にて、代理人に指定されたユーザーを確認できます。

代理人は最大25名まで設定でき、またそれぞれのユーザーでいくつか設定値を持っています。
管理者にて代理人設定が正しいかを確認する場合に目で見てチェックすると、見落としが発生したり時間がかかります。
CUI(PowerShell)での確認方法
PowerShellで代理人の一覧を取得するには以下のコマンドを実行します。
以下コマンドの実行前には、Connect-MicrosoftTeamsを実行してTeams管理センターへ接続しておきます。
# 取得する代理人(親となるユーザー)のUPNを指定 $upn = "取得する代理人(親となるユーザー)のUPN" # 代理人親ユーザーのUPNから通話設定を取得 $settings = Get-CsUserCallingSettings -Identity $upn # 代理人情報を取得 $settings.Delegates | ForEach-Object { # 表示名から"sip:" を削除 $delegateIdClean = $_.Id -replace "^sip:", "" # 代理人ユーザー情報を取得 $delegateUser = Get-CsOnlineUser -Identity $delegateIdClean # 出力オブジェクトを作成 [PSCustomObject]@{ # 代理人のUPN DelegateID = $delegateIdClean # 代理人の表示名 DelegateDisplayName = $delegateUser.DisplayName # 代理人として発信できるかどうか MakeCalls = $_.MakeCalls # 代理人として電話を受け取るかどうか ReceiveCalls = $_.ReceiveCalls # 代理人設定を編集できるかどうか ManageSettings = $_.ManageSettings # 保留中の通話を受け取れるかどうか PickUpHeldCalls = $_.PickUpHeldCalls # アクティブな通話に参加できるかどうか JoinActiveCalls = $_.JoinActiveCalls } # 取得した情報をCSVに出力 } | Export-Csv ( ".\TeamsPhone_Delegates_" + $upn + "_" + (Get-Date -Format "yyyyMMdd_HHmmss") + ".csv" ) -Encoding Default -NoTypeInformation
CSVは、コマンドを実行したディレクトリに以下のようなファイル名で出力されます。

CSVへ出力される内容は以下の通りです。

| ヘッダ | 値 | 備考 |
|---|---|---|
| DelegateID | 代理人のUPN | 通常"sip:UPN"の形で取得されるため、コマンドの中で先頭の"sip:"をトリムしています |
| DelegateDisplayName | 代理人の表示名 | - |
| MakeCalls | TRUE/FALSE | 代理人として発信できるかどうか |
| ReceiveCalls | TRUE/FALSE | 代理人として電話を受け取るかどうか |
| ManageSettings | TRUE/FALSE | 代理人設定を編集できるかどうか※GUIでは「通話設定の変更を許可する」と表示 |
| PickUpHeldCalls | TRUE/FALSE | 保留中の通話を受け取れるかどうか※GUIではTeams管理センターに表示されない値 |
| JoinActiveCalls | TRUE/FALSE | アクティブな通話に参加できるかどうか※GUIではTeams管理センターに表示されない値 |
最後に、コマンドの実行結果をCSVではなくコンソールにそのまま出力するコマンドも合わせてご紹介します。
# 取得する代理人(親となるユーザー)のUPNを指定 $upn = "取得する代理人(親となるユーザー)のUPN" # 代理人親ユーザーのUPNから通話設定を取得 $settings = Get-CsUserCallingSettings -Identity $upn # 代理人情報を取得してコンソールに表示 $settings.Delegates | ForEach-Object { # 表示名から "sip:" を削除 $delegateIdClean = $_.Id -replace "^sip:", "" # 代理人ユーザー情報を取得 $delegateUser = Get-CsOnlineUser -Identity $delegateIdClean # 出力オブジェクトを作成 [PSCustomObject]@{ # 代理人のUPN DelegateID = $delegateIdClean # 代理人の表示名 DelegateDisplayName = $delegateUser.DisplayName # 代理人として発信できるかどうか MakeCalls = $_.MakeCalls # 代理人として電話を受け取るかどうか ReceiveCalls = $_.ReceiveCalls # 代理人設定を編集できるかどうか ManageSettings = $_.ManageSettings # 保留中の通話を受け取れるかどうか PickUpHeldCalls = $_.PickUpHeldCalls # アクティブな通話に参加できるかどうか JoinActiveCalls = $_.JoinActiveCalls } } | Format-Table -AutoSize
CSVを都度開かなくてよいので、すぐに確認したい時に便利です。

終わりに
PowerShell を活用することで、Teams Phone の代理人設定を効率的かつ正確に確認できます。
管理センター画面では見落としがちな詳細項目も自動的に一覧化されるため、定期的な設定確認や監査にも有用です。
運用の手間を減らしつつ、設定ミスを防止できる方法としてぜひ活用してみてください。
Hiroko, Kimura(日本ビジネスシステムズ株式会社)
Microsoft 365製品の提案~運用が担当領域、特にTeams/Teams Phone多めです。趣味は音楽とテレビと映画。趣味にしたいのは筋トレ(エンジニアには筋肉が必要)。
担当記事一覧