【PowerAutomate】ネストされたグループのメンバを取得する方法

クラウドサービス

久しぶりにPower Automateのトピックを投稿します。

なぜなら、Copilot検索などを行ってもすぐに情報が得られなかったからです。

今回は「ネストされたグループのメンバを取得する方法」です。

標準のアクションではネストされたグループのメンバは取れない

会員 – 女性会員
    - メガネ会員
   – 男性会員
    - ひげ会員
    - メガネ会員

標準の「グループ メンバーの一覧表示」アクションだとネストされたグループのメンバは取得できません。

私じゃダメなの…

お手軽に使えるアクションではありますが、このことを知らないと罠にはまるかもしれませんね。

ネストされたグループのメンバを取得するには、HTTP要求にて

では、ネストされたグループのメンバをすべて取得するにはどうすればよいのでしょう?

それは、「HTTP 要求 v2 を送信します」アクションを使います。

詳細な情報はこちらに記載されています↓

List group transitive members - Microsoft Graph v1.0
Get a list of the group's members. A group can have users, devices, organizational contacts, and other groups as members. This operation is transitive and retur...

こういったドキュメントを探すのに苦労しました。日本語ではあまり情報がないので英語で探せないといけないのでしょうね。

具体的なアクションのサンプル

HTTP要求でURIを記述することで、ネストされたグループ内のメンバ全員を取得できます。

サンプルコード

https://graph.microsoft.com/v1.0/groups/グループのID/transitiveMembers/microsoft.graph.user?count=true

”transitiveMembers”を使うのがポイントですね。

ネストされたグループは当たり前のように使われていると思いますので、この方法でメンバを取得できることは覚えておいて損はないと思います。

参考)AIに確認してもすぐ情報が得られなかった

最近はAIが進化しているので、分からないことがあればまずはAI聞くようにしています。

しかし、今回のネストグループのメンバ取得については欲しい情報を返してくれませんでした。

【質問】

【回答】

Power Automateのフローを作成:
Power Automateにサインインし、新しいフローを作成します。
HTTPリクエストを使用:
「HTTP」アクションを追加し、以下のように設定します。
Method: GET
URIhttps://graph.microsoft.com/v1.0/groups/{group-id}/members
Headers:
Authorization: Bearer {access-token}
Content-Type: application/json
ネストされたグループのメンバーを取得:
取得したメンバーリストをループ処理し、各メンバーがグループかどうかを確認します。
メンバーがグループである場合、そのグループのメンバーを再帰的に取得します。
結果を保存:
取得したメンバー情報をExcelやSharePointリストなどに保存します。

HTTPリクエストを使うところまではいい線で回答してもらえましたが、ネストされたグループを取得する最適な方法を回答してくれませんでした。

グループメンバを取得し、そのメンバ内にグループが含まれていたら再帰的にまたグループを取得して確認、を繰り返してメンバを取得する方法を提案されました。

ちなみに、一度そのやり方を行ったのですが、Power Automateでは再帰的なループ処理はエラーが発生してできませんでした。

AIが適切な回答を返してもらえるよう情報発信が必要と感じました。

まとめ

1.Power Automateでネストされたグループのメンバを取得するには、「グループメンバーの一覧表示」ではなく「HTTP 要求 v2 を送信する」を使いましょう。

2.送信するURIでは、”transitiveMembers”を使うのがポイントです。

3.AIに聞いても最適な回答を得られないことがあるため、AI回答だけで「できないな」とあきらめずに色々調べてみることが重要です。

コメント

タイトルとURLをコピーしました