💻

Teams チームに紐づく Microsoft 365 グループ予定表を表示させる

2022/07/31に公開

この記事について

本記事では、Teams チーム経由で作成した Microsoft 365 グループ予定表を ExchangePowerShell で表示させる方法について記載しています。

Microsoft 365 グループ は、社内外のユーザー間での共同作業に使用することができ、メンバーは会話用のグループメール、および、共有ワークスペース、ファイル、カレンダー、ストリーム、Planner などを利用することができるようになります。
Microsoft 365 グループは、Teams チームや SharePoint サイトを作成した際、チームやサイトに紐づいたものが裏側で自動作成されます。しかし、Teams チーム作成によって作成された Microsoft 365 グループについては、グループ予定表機能が既定で非表示化された状態で作成される仕様があるため、管理者側で設定を変更する必要があります。

Teams チームに紐づく Microsoft 365 グループ予定表を有効化する

ExchangePowerShell のインストール

グループ予定表を有効化するには、ExchangePowerShell を使用する必要があります。インストールしていない方は、PowerShell Gallery からインストールを実施してください。

Install-Module -Name ExchangeOnlineManagement -RequiredVersion 2.0.5

なお、Docker Compose でインストールしたい方は、以下を参考にしてください。

https://github.com/ymasaoka/docker-exoshell/

ただし、Docker コンテナー上で ExchangePowerShell を実行する場合、後述の Set-UnifiedGroup コマンドが実行できないため、代わりにサービスプリンシパルなどを使用したコマンド実行が必要になります。
(Get-UnifiedGroup は実行可能です)

Exchange Online に接続し Microsoft 365 グループの状態を確認

Exchange Online に接続し、対象の Microsoft 365 グループの状態を確認します。

Connect-ExchangeOnline

今回は、検証用に 検証 - グループ予定表有効化 という Microsoft 365 グループを Teams から作成しましたので、これを参照することにします。

また、この時点で Outlook を起動しても、作成した Teams チーム (Microsoft 365 グループ) に紐づくグループ予定表は表示されないことを確認しておきます。

Get-UnifirdGroup コマンドを実行し、対象の Microsoft 365 グループが存在することを確認します。

Get-UnifiedGroup -Identity "{対象の Microsoft 365 グループ名}" | select DisplayName,ResourceProvisioningOptions,Language,HiddenFromExchangeClientsEnabled

実行結果としては、以下のようなものが表示されるはずです。

Get-UnifiedGroup -Identity "検証 - グループ予定表有効化" | select DisplayName,ResourceProvisioningOptions,Language,HiddenFromExchangeClientsEnabled

DisplayName                 ResourceProvisioningOptions Language HiddenFromExchangeClientsEnabled
-----------                 --------------------------- -------- --------------------------------
検証 - グループ予定表有効化     {Team}                      en-US                               True

コマンドを実行して確認できるように、Teams から作成した Microsoft 365 グループについては、 HiddenFromExchangeClientsEnabledTrue になっており、グループ予定表が非表示化されています。このため、Teams から作成した Microsoft 365 グループについては、デフォルトだと Outlook などでグループ予定表が利用できない状態となっています。

なお、Teams 経由で作成された Microsoft 365 グループの一覧についても、 Get-UnifiedGroup で取得することが可能です。必要に応じて、実行をしてみてください。

Get-UnifiedGroup -Filter {ResourceProvisioningOptions -eq "Team"}

グループ予定表を有効化

Set-UnifiedGroup コマンドにて、 HiddenFromExchangeClientsEnabledfalse にします。

Set-UnifiedGroup -Identity "{対象の Microsoft 365 グループ名}" -HiddenFromExchangeClientsEnabled:$false

なお、先述の通り、無人スクリプトDocker Compose 環境などでスクリプトを実行しようとしている場合は、Set-UnifiedGroup コマンドが無効化されています。そのため、無人スクリプト環境や Docker Compose 環境で本設定を有効化したい場合は ExchangePowerShell ではなく、Microsoft Graph を利用するようにしてください。

グループ予定表の確認

コマンドを実行した後、Outlook を起動すると、グループ予定表が表示されるようになっているのを確認できると思います。

ExchangePowerShell 上でも、 HiddenFromExchangeClientsEnabled が False になっているのを確認できるはずです。

Get-UnifiedGroup -Identity "検証 - グループ予定表有効化" | select DisplayName,ResourceProvisioningOptions,Language,HiddenFromExchangeClientsEnabled

DisplayName                 ResourceProvisioningOptions Language HiddenFromExchangeClientsEnabled
-----------                 --------------------------- -------- --------------------------------
検証 - グループ予定表有効化     {Team}                      en-US                               False

なぜ Teams 経由で Microsoft 365 グループを作成すると機能が無効化されるのか

Microsoft Docs に原因についての記載があります。

OutlookまたはSharePointでMicrosoft 365 グループを作成すると、グループ メールボックスがOutlookに表示されます。Teamsでチームを作成すると、グループ メールボックスは既定で非表示になります。Set-UnifiedGroup コマンドレットと HiddenFromExchangeClientsEnabled パラメーターを使用して、メールボックスを表示できます。

https://docs.microsoft.com/ja-jp/MicrosoftTeams/office-365-groups#how-microsoft-365-groups-work-with-teams

Teams で作成した時だけ仕様が異なるのは最悪なので、この仕様は早く直し、他で Microsoft 365 グループを作成した時と同じ動作をするようにしてほしいものです。

参考情報

Microsoft Docs

Discussion