Microsoft Teamsのチームにユーザーを追加するときグループアドレスを使用すると、操作した時点のグループアドレスに含まれるユーザーが追加されます。しかし、グループアドレスに含まれるユーザーが変更されてもチームのユーザーは更新されません。
この記事ではPower Automateを使ってグループアドレスに含まれるメンバーを自動的にチームに追加する手順を紹介します。追加手順だけ示しますが、簡単な変更でチームから削除すべきメンバを抽出することもできます。
フローの全体像
実際にはスケジュールトリガで実行するのがいいでしょう。

アクションの設定
作成 グループアドレス
グループアドレス(メールアドレス)を指定します。
グループの一覧
Office365グループコネクタ
「行をフィルターする」に mail eq ‘outputs(‘作成 グループアドレス’)’
作成 グループアドレスのID
first(outputs(‘グループの一覧’)?[‘body’]?[‘value’])?[‘id’]
HTTP 要求 V2 を送信する
URIを以下のように設定。グループIDのところに「作成 グループアドレスのID」の出力を入れる。
Graph APIでtransitiveMembersを使用することが重要です。グループアドレスのメンバーは個人ユーザーとは限りません。入れ子でグループアドレスが入っている場合もあります。transitiveMembersを使うことで、最終的な個人ユーザーのみを抽出することができます。
$select=id,displayName,userPrincipalNameでidとdisplayNameとuserPrincipalNameを抽出する指示、$top=999で999件まで一度に取得する指示(指示なしの場合は一度に100件まで)をする。
https://graph.microsoft.com/v1.0/groups/{グループID}/transitiveMembers/microsoft.graph.user?$select=id,displayName,userPrincipalName&$top=999
JSON の解析
Contentに「HTTP 要求 V2 を送信する」の「本文」を設定する。
スキーマを以下のように設定する。
{
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"displayName": {
"type": "string"
},
"userPrincipalName": {
"type": "string"
}
},
"required": [
"id"
]
}
}
}
}
選択 グループアドレスメンバーのユーザーID
元に「JSON の解析」のbody value
マップのkey userID,
値を入力します 「JSON の解析」のBody id
作成 チームのID
メンバーを追加したいチームのIDを入力します
グループ メンバーの一覧表示
Office365グループコネクタ
グループIDに outputs(‘作成_グループアドレスのID’)
チームであればプルダウンメニューに候補として表示されるので、わざわざ「作成 チームID」で指定しなくてもOKです。
選択 チームのメンバーのIDのみ
元に「グループ メンバーの一覧表示」のbody/value
マップのkey userID
値を入力しますに 「グループ メンバーの一覧表示」の「ユーザーID」
アレイのフィルター処理
グループアドレスメンバーのユーザーID配列から、チームメンバーのユーザーID配列に含まれない要素を抽出する操作をする。
From: body(‘選択_グループアドレスメンバーのユーザーID’)
Filter Queryは以下の通り。
左辺: contains(body(‘選択_チームのメンバーのIDのみ’), item()?[‘userID’])
判定式: 「異なる」 (is not equal to)
右辺: true ※数式から記入する
チームにメンバーを追加
最後にMicrosoft Teamsコネクタの「チームにメンバーを追加する」アクションで、「アレイのフィルター処理」の結果で得られるユーザーのGUID配列をチームに追加して完了。
アレイのフィルター処理を書き換えれば、フロー実行の時点でチームに含まれるがグループアドレスに含まれないユーザーを抽出することもできます。
Office365グループコネクタの「グループからメンバーを削除」アクションを使えば、Power Automateでチームのメンバを削除するこもできます。







