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

アクションの設定
作成 グループアドレス
グループアドレス(メールアドレス)を指定します。
グループの一覧
Office365グループコネクタ
「行をフィルターする」に mail eq ‘outputs(‘作成 グループアドレス’)’
作成 グループアドレスのID
first(outputs(‘グループの一覧’)?[‘body’]?[‘value’])?[‘id’]
グループ メンバーの一覧表示
Office365グループコネクタ
グループIDに outputs(‘作成_グループアドレスのID’)
選択 グループアドレスメンバーのユーザーID
元に「グループ メンバーの一覧表示」のbodu/value
マップのkey userID,
値を入力します 「グループ メンバーの一覧表示」のユーザーID
作成 チームのID
メンバーを追加したいチームのIDを入力します
HTTP 要求 V2 を送信する
URIを以下のように設定。グループIDのところに「作成 チームのID」を入れる。
https://graph.microsoft.com/v1.0/groups/{グループID}/transitiveMembers/microsoft.graph.user?$select=id,displayName,userPrincipalName
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のみ
元に「選択 チームのメンバーのIDのみ」のbodu value
マップのkey userID
値を入力しますに JSONの解析の Body id
アレイのフィルター処理
グループアドレスメンバーのユーザーID配列から、チームメンバーのユーザーID配列に含まれない要素を抽出する操作をする。
From
body(‘選択_グループアドレスメンバーのユーザーID’)
Filter Queryは以下の通り。
左辺 contains(body(‘選択_チームのメンバーのIDのみ’), item()?[‘userID’])
判定式 「異なる」 (is not equal to)
右辺 true ※数式から記入する
チームにメンバーを追加
最後にMicrosoft Teamsコネクタの「チームにメンバーを追加する」アクションで、「アレイのフィルター処理」の結果で得られるユーザーのGUID配列をチームに追加して完了。
アレイのフィルター処理を書き換えれば、フロー実行の時点でチームに含まれるがグループアドレスに含まれないユーザーを抽出することもできます。

