記事公開日
【Power Platform】Microsoftライセンスの無駄をCopilotエージェントに示唆出しさせてみた
この記事のポイント
「持っているのに使われていない」Microsoft 365 ライセンスを、AIエージェントに棚卸ししてもらう仕組みを、筆者が実際に作って検証しました。
Microsoft Power Platform(Power Automate / Copilot Studio)と Microsoft Graph API を組み合わせ、外部サービスを使わずに実現しています。
- 「持っているのに使っていない」をAIが示唆:
休眠アカウントとCopilot未活用を突き合わせ、優先順位と推定削減額(※サンプル値・概算)つきで回収候補を提示します。 - 「絞り込みはフロー、判断と示唆はAI」の役割分担が効く:
確実に取れるデータはPower Automateのフローで確定させ、AIは示唆づけに専念。精度・コスト・体験のすべてが良くなりました。 - Microsoftエコシステム内で完結し、あとから育てられる:
Graph・Entra・Power Platform・Teams で完結。Teamsへの定期通知などは拡張予定として段階的に広げていけます。
こんにちは!DXソリューション営業本部の大和矢です。
Microsoft 365 を使い続けていると、ライセンスの割り当てが少しずつ「実態」とズレていく——そんな経験はありませんか?
異動した人に、以前の役割で配った高単価ライセンスが割り当たったまま、試験導入で配ったライセンスがそのまま放置、「持ってはいるけれど、ログインも利用もしていない」人が一定数いる。
筆者も社内のライセンスを眺めていて、「これ、地味にもったいないな」とモヤモヤしていた一人です。
とはいえ、棚卸しは手間がかかります。
割り当て状況・最終サインイン・サービスごとの利用状況——必要な情報は複数の管理画面に分散していて、「誰が・何を・実際に使っているのか」を一枚にまとめるのは、想像以上に骨が折れます。
そこで筆者は、「ライセンスのムダを、AIエージェントに棚卸ししてもらう」仕組みを実際に作って検証してみました。
この記事では、その仕組みの考え方・つくり方・実際の動きを、実装の細部は伏せつつ概要レベルでご紹介します。
同じようなモヤモヤを抱えている方の、ひとつの作り方の参考になればうれしいです。
いつの間にか積み上がる"ライセンスのムダ"
Microsoft 365 のライセンスは、運用を続けるほど「契約しているもの」と「実際に使われているもの」がズレていきます。
よくあるのは、次のようなパターンです。
- 異動した人に、以前の役割で配った高単価ライセンスが割り当たったまま
- 試験導入で配ったライセンスが、そのまま放置
- 「持ってはいるけれど、ログインも利用もしていない」人が一定数いる
特に Microsoft 365 Copilot のような高単価ライセンスは、1人あたりの金額が大きいぶん、未活用が積み重なると無視できないコストになります。
「使っていないなら回収したい」——気持ちはあっても、誰が休眠しているのかを正確に把握するのが、そもそも大変なのです。
なぜ棚卸しが大変なのか:
「割り当て状況」「最終サインイン」「サービスごとの利用状況」といった必要な情報が、複数の管理画面に分散しているからです。
人が定期的に画面を開いて突き合わせる運用は、続けるほど負担になり、見るのを後回しにしがちです。
この「見るのが面倒で後回しになる」構造を変えられないか——それが今回の出発点でした。
つくったもの:3つの役割でシンプルに
目指したのはシンプルなゴールです。
「誰が持っていて、ちゃんと使っているか」を、向こうから教えてくれる。
人が定期的に管理ファイルを開いて確認するのではなく、AIが常に最新の状態を見て、回収候補を示唆してくれる形です。
構成は大きく3つの役割に分かれています。
いずれも Microsoft Power Platform(Power Automate / Copilot Studio)の組み合わせで実現しています。
- 収集・分析(実装済み):M365の利用状況を定期的に取得し、しきい値ルール(「何日使っていなければ要確認か」といった判定基準)で「ログイン休眠」「Copilot未活用」の候補を絞り込む
- 対話エージェント(実装済み):Copilot Studio のエージェントに聞けば、その場で最新の示唆が返ってくる
- 能動通知(拡張予定):エージェントが作った示唆レポートを、定期的に Teams へ自動でお知らせする
ポイントは、常設の"管理台帳"を持たないことです。
台帳は作った瞬間から古くなりますが、AIが都度最新を取りに行く設計なら、いつ聞いても"今"の状態で答えてくれます。
図の左から右へ、「Graphで集める → ルールで絞る → エージェントが示唆にする → 届ける」という一本道の流れになっています。
このうち「収集・分析」と「対話エージェント」までが実装・動作確認済みで、「能動通知」は今後の拡張予定として位置づけています。
仕組みの裏側:Graphで集めて、エージェントに渡す
骨組みだけご紹介します。
中心にいるのは Power Automate のフローです。
フローが Microsoft Graph API(M365のデータを取得するためのAPI)を呼び出し、テナント内のユーザー一覧・ライセンス割当・最終サインイン・Copilotの利用状況を取得します。
そのうえで、「最終サインインから◯日以上」「Copilotを◯日使っていない」といったしきい値ルールでフロー側が対象を絞り込み、見直し候補となるユーザーだけを抽出します。
ここはAIではなく、フローの条件判定で機械的に振り分けている部分です。
そして、絞り込んだ候補リストを Copilot Studio のエージェントにインプットします。
エージェントの役割は「誰が休眠か」をゼロから探すことではありません。
受け取った候補に対して、休眠とCopilot未活用の両方に当てはまる人を最優先に並べ替え、推定削減額を添え、回収のしかた(推奨アクション)まで付けて、そのまま判断に使える形に仕立てることです。
つまり 「絞り込みはフロー、示唆づけはエージェント」と役割を分けているわけですね。
あえて、エージェントの仕事を減らす
「絞り込みをフローに寄せる」のは、手抜きではなく意図した設計です。
AIに生データをそのまま渡して"あとはよろしく"とするより、確実に取れて変わらないデータ(ライセンスの割当状況など)はフローで取り切って確定させ、整った候補リストだけをエージェントに渡すほうが、いいことが多いと感じました。
- 回答の精度が上がる:
入力が「対象ライセンスに絞った・判定済みの候補」なので、エージェントは余計な探索や解釈をせずに済み、ブレの少ない回答になります - AIの処理コストを抑えられる:
AIにやらせる作業が減る(データの収集・選別はフロー側で完了している)ぶん、Copilotのクレジット消費が軽くなります - 体験がよくなる:
毎回きちんと必要なデータが揃った状態で答えるので、速く・安定して返ってきます
要するに、「機械的に決められることはフローで確定し、AIは"判断と示唆"に集中させる」という考え方です。
エージェントの出番はあえて小さくしていますが、それが精度・コスト・体験のすべてに効いている、というのが筆者の実感です。
事前の下準備について:
フローから Graph API を呼び出すには、あらかじめ Microsoft Entra ID(旧 Azure AD)でのアプリ登録——アプリケーションに必要な権限を与え、管理者が同意する——という準備が必要です。
ここは一度通しておけば、以降はフローが自動でデータを取りにいけます(具体的な権限や登録手順は本記事では割愛します)。
「標準のCopilotでは足りないの?」
「そこまで作らなくても、標準機能で聞けるのでは?」と思われるかもしれません。
実は、Microsoft 365 には標準で管理者向けのCopilot(管理エージェント)のような仕組みも用意されていて、ライセンスや利用状況をある程度は聞けます。
ただ、こうした汎用エージェントは見るデータの範囲が広いぶん、今回のような「対象の高単価ライセンスに絞って・休眠とCopilot未活用を突き合わせて・推定削減額つきで」というピンポイントな問いには、一度で期待どおりの形では返ってきにくい、というのが実際に触ってみた筆者の感想です。
ここが、前述の設計が効くところです。
「何を対象に、どう判定するか」をフロー側で決め打ちして候補を絞り込み、エージェントには示唆づけに専念してもらう。
汎用エージェントの便利さとは別に、特定の業務課題に対しては"対象を絞った専用エージェント"のほうが、一発で使える答えになる——というのが、両方を触って得た使い分けの感覚です。
実際に、エージェントはこう答えてくれる
エージェントに 「ライセンスのムダとかある?」 と聞くと、最適化候補レポートが返ってきます。
ただのデータ一覧ではなく、優先順位・推定削減額・次のアクションまで添えて返してくるのが特徴です。
まずは、最優先の判定と「ログインが古い人(休眠アカウント)」の一覧です。
続いて、「Copilotを使っていない人」と、推定削減合計です。
※レポート内の単価・推定削減額(例: 月¥124,200)はあくまでサンプル値・概算です。
単価は仮設定のため、実際の契約内容に合わせて調整してください。
このレポートがただのデータ一覧と違うのは、次の3点まで踏み込んでいるところです。
- 優先順位づけ:
"人もCopilotもムダ"な人(両方該当)から順に並べる - 推定削減額:
金額で効果が見える(※サンプル値・概算) - 次のアクション:
回収を検討すべき候補として、推奨アクションつきで提示する
「データを見せる」ではなく「示唆を出す」。
そのまま判断に使える形で返してくれることが、AIエージェントにした意味だと感じています。
「グループ付与」のライセンスも、ちゃんと見える
ライセンスの配り方には、一人ひとりに直接付ける方法と、グループにまとめて付ける方法(グループのメンバーになると自動で割り当たる)があります。
ここで気になるのが、「グループで配っていると、中の一人ひとりまでは追えないのでは?」という点ですよね。
結論から言うと、追えます。
グループに付けたライセンスは、メンバー全員に自動で行き渡る仕組みになっているため、「誰が実際に持っているか」は一人単位できちんと把握できます。
エージェントも、グループ付与でライセンスを持っている人を見落とさずに候補へ挙げます。
さらにポイントは、回収のしかたが割り当て方法によって変わることです。
| 割り当て方法 | 回収のしかた |
|---|---|
| 直接付与 | そのライセンスを外す |
| グループ付与 | グループから外す(個人側では外せない) |
この違いまで踏まえて「どう回収すればよいか」まで示せるので、出てきた候補をそのまま実行に移せるのが強みです。
ここから育てる:定期通知・拡張・Microsoftで完結
ここまでは「聞けば答えてくれる」対話エージェントの話でした。
動く土台ができたので、ここから先は組織に合わせて育てていける——というのが、この仕組みの面白いところです。
"向こうから知らせる"定期通知(拡張予定)
もう一歩進めて、聞かなくても気づける形も考えています。
イメージは、エージェントが作る示唆レポートそのものを、定期的に Teams へ自動で届けること。
優先順位や推定削減額つきの"そのまま読める示唆"が、聞きにいかなくても向こうからやってくる——という拡張です。
「見に行かないと気づかない」を、「向こうから教えてくれる」に変える。
対話エージェントと同じ示唆を、定期的に押し出すイメージですね(こちらは現在、拡張予定の位置づけです)。
補足:定期通知の実現方法について
Copilotには「スケジュールされたプロンプト」(決まったプロンプトを定期的に自動実行する機能)があり、定期的に示唆を生成するだけなら、これだけでも実現できます。
ただし、その結果を Teams のスレッド(チャネル)へ自動で投稿する形にするには、Power Automate のフローを別途組む必要があります(2026年6月時点)。
今回イメージしているのは後者の「Teamsへ自動で届ける」形のため、拡張予定として位置づけています。
道具を足して、エージェントを広げる
いまエージェントに渡しているのは、絞り込んだ候補を返すシンプルなフロー(道具)が中心です。
ここから先は、使える"道具"を増やしていくほど、エージェントらしく動けるようになります。
たとえば「Excelで出して」と言えばファイル出力するツールを足す、足りないデータをその場で取りに行く別のフローを持たせる、といった具合です。
Power BI でのダッシュボード化や、「誰がいつ付与したか」の履歴蓄積なども、必要に応じて段階的に育てられます。
すべて Microsoft の世界の中で完結する
この仕組みのもうひとつのポイントは、外部サービスを一切使っていないことです。
| 役割 | 使用するサービス |
|---|---|
| データの取得 | Microsoft Graph API |
| 認証・アプリ登録 | Microsoft Entra ID |
| 処理・連携(フロー) | Power Automate(Microsoft Power Platform) |
| 対話エージェント | Copilot Studio(Microsoft Power Platform) |
| 通知・受け取り | Teams |
集める・処理する・示唆する・届ける——その全工程が Microsoft 365 / Power Platform / Entra のエコシステム内で完結します。
新しいSaaSを契約したり、社外にデータを持ち出したりする必要がないため、情報の取り扱いやガバナンスの面でも導入のハードルが低い構成だと考えています。
なお、この仕組みはそもそも、どこかに納品するために作ったものではなく、自分の棚卸し作業をラクにしたくて組んだものです。
ただ、対象にするライセンスや判定基準は中身がただの設定値なので、ライセンス構成が違ってもそこを入れ替えれば、たいていそのまま応用が利く——という汎用性は、結果的に自然と備わっていました。
よくある質問
Q. グループでライセンスを配っていても、個人単位で休眠を把握できますか?
はい、把握できます。
グループに付けたライセンスはメンバー全員に自動で割り当たる仕組みのため、「誰が実際に持っているか」は一人単位で追えます。
ただし回収方法は異なり、直接付与の人はライセンスを外す、グループ付与の人はグループから外す(個人側では外せない)という違いがあります。
Q. 標準の管理者向けCopilotではなく、専用エージェントを作る意味はありますか?
「対象の高単価ライセンスに絞って・休眠とCopilot未活用を突き合わせて・推定削減額つきで」というピンポイントな問いに対しては、対象を絞った専用エージェントのほうが一発で使える答えになりやすい、というのが筆者が両方を触った感想です。
汎用エージェントは見るデータの範囲が広いぶん、特定の業務課題には期待どおりの形で返ってきにくい場面がありました。
Q. 外部のSaaSやAIサービスを使う必要はありますか?
いいえ、今回の仕組みは外部サービスを使っていません。
データ取得(Microsoft Graph API)、認証(Microsoft Entra ID)、処理(Power Automate)、対話(Copilot Studio)、通知(Teams)まで、すべてMicrosoft 365 / Power Platform / Entra のエコシステム内で完結します。
社外にデータを持ち出さないため、ガバナンス面でも導入のハードルが低い構成です。
Q. 記事中の推定削減額は実際の金額ですか?
いいえ、レポート内の単価や推定削減額(例: 月¥124,200)はあくまでサンプル値・概算です。
単価は仮設定のため、実際の契約内容に合わせて調整してご利用ください。
まとめ:絞り込みはフロー、判断と示唆はAIに
今回の検証から得られた学びは、次の3つです。
- 「持っているのに使っていない」を、AIが示唆する:
M365ライセンスの未活用を、優先順位と推定削減額(※サンプル値・概算)つきでエージェントが提示してくれます - 役割分担が効く:
"絞り込みはフロー、判断と示唆はAI"と分けることで、精度・コスト・体験のすべてが良くなりました - Microsoftエコシステム内で完結し、あとから育てられる:
Graph・Entra・Power Platform・Teams で完結する構成で、道具を足して段階的に拡張していけます
もともとは「ライセンスの棚卸し、地味に面倒だな」という自分の手間を減らしたくて作ったものですが、やってみると "絞り込みはフロー、判断と示唆はAI" の役割分担が思いのほか効きました。
同じようなモヤモヤを抱えている方は、まずは「対話エージェントに聞いてみる」ところから考えてみてはいかがでしょうか。
この記事が、ひとつの作り方の参考になればうれしいです。
また、QESでは、Power Platform導入時の支援から、アプリケーション開発、導入後の保守サポートまで対応しています。
以下のリンクからご提供しているサービスの詳細をご確認いただけます。
※このブログで参照されている、Microsoft、Microsoft 365、Microsoft Copilot、Copilot Studio、Power Automate、Power Platform、Power BI、Microsoft Teams、Microsoft Entra ID、Microsoft Graph、Azureは、米国およびその他の国におけるMicrosoft Corporationの商標または登録商標です。


.png)