PowerShellでの利用状況レポートのデータ取得方法

こんにちは、SxSの村木です。

ここ最新急に暑くなりましたが、皆さん寒暖差で体調を崩していないでしょうか。

私としては暑さが得意という訳ではないのですが、夏のエネルギッシュな感じが好きなので、梅雨を飛ばしてこのまま夏になってほしいと感じております。

さて今回は、利用状況レポートのデータ取得について少しお話ししたいと思います。

目次

このブログは SxS を提供しているソノリテが作成しています。

利用状況レポートについて

Microsoft 365 管理センターにて、ナビゲーションメニューの [レポート] > [利用状況] から、組織内のユーザーが Teams や SharePoint 等の Microsoft 365 のサービスをどの程度使用しているかのデータを見ることができます。

例えば Teams の場合、チームの最後のアクティビティの日付やアクティブユーザーを確認でき、チームの棚卸しの際に役立ちそうなデータとなります。

このようなデータはブラウザの画面上からエクスポートすることが可能ですが、PowerShell でもデータを取得することができれば、更に利便性が上がるかと思います。

PowerShellを用いてデータを取得するには

PowerShell の Microsoft.Graph.Reports モジュールの中には、利用状況レポートのデータを取得できるコマンドが含まれており、例えば以下のコマンドで Teams のチームの使用状況のデータを取得することができます。

Get-MgReportTeamActivityDetail

しかしながら、こちらのコマンドはデータをファイルとして出力するコマンドとなり、PowerShell 内でデータを整形するのであれば、出力後のファイルを再度読み込む必要があります。

Get-MgReportTeamActivityDetail -Period D180 -OutFile ".\TeamsTeamActivityDetail.json"
$data = Get-Content ".\TeamsTeamActivityDetail.json" -Encoding UTF8 | ConvertFrom-Json

ファイルを出力したくない場合、以下のコマンドで REST API リクエストを Graph API に対して実行することでもデータを取得することが可能です。

Invoke-MgGraphRequest

こちらのコマンドは、API はあるものの PowerShell コマンドがまだ用意されていない時にも利用できます。

$uri = "https://graph.microsoft.com/beta/reports/getTeamsTeamActivityDetail(period='D180')?`$format=application/json"
$data = Invoke-MgGraphRequest -Method Get -Uri $uri

今回の記事は以上になります。少しでも参考になれば幸いです。

SxSでは GUI 上の操作だけではなく、SharePoint や Teams に関連する PowerShell のお問い合わせもサポートいたします。

GUI の操作は大体把握しているけど、もう一歩踏み込んだことを行いたいという方も、是非SxSにお問い合わせください。

ではまた次回の記事でお会いしましょう!

SxSブログのチェックをよろしくお願いします!

目次