グラフアクセスに使用できるチームごとのアクティビティデータ
Teams 管理センターと同じ情報にアクセスする
ザ Microsoft Graph 使用状況レポート API は、SharePoint Online、Exchange Online、OneDrive for Business、Yammer、Teams など、多くの Microsoft 365 ワークロードについて収集されたアクティビティ データへのアクセスを提供します。これまで、Teams データはユーザー レベル (たとえば、だれかが投稿したメッセージの数) で利用できますが、チームごとのアクティビティ データを取得することはできませんでした。これは、Teams 管理センターにチームアクティビティレポートがあるにもかかわらずです (図 1)。

Teams 管理センターからレポートをダウンロードすると、CSV ファイルが作成されます。幸いなことに、Microsoft はグラフ レポート API をアップグレードして、テナントが Teams 管理センターに表示されるデータをプログラムで作成できるようにしました。開始以来、レポート API はユーザーごとのアクティビティ (Microsoft 365 ユーザーアクティビティレポートスクリプトで使用するものです) に焦点を当ててきました。今、 Vasil Michevによる報告では、チームごとのアクティビティ データを取得するための新しいグラフ クエリを使用できます。
チームアクティビティデータに関する注意事項
チームごとのアクティビティ データをダウンロードする機能があることは素晴らしいことですが、この情報にはいくつかの注意点があります。
- グラフから取得されるデータは、チャネル内のユーザー・メッセージング・アクティビティ専用です。ドキュメントの作成、プロセス タスク、Yammer コミュニティ、その他のアプリなど、他のチーム アクティビティは反映されません。
- 電子メールを使用してチームチャネルに送信されたメッセージは含まれません。
- RSS コネクタや着信 Webhook コネクタなどのコネクタを使用してチャネルに投稿されたメッセージは含まれません。
さらに、利用状況レポートの期間 (最大 90 日間) にチームにアクティビティがない場合、グラフにはそのアクティビティはデータに含まれません。たとえば、これは、Teams の承認テンプレートを管理するために作成されたチームが使用状況レポートに表示されないことを意味します。アクティビティとは、チャネル関連のアクションがチーム内で発生することを意味します。誰かが新しいトピックを投稿したり、トピックに返信したりするとは限りません。チャンネルのプロパティを編集するか、新しいチャンネルを作成するだけで十分です。テナントでは、データには 72 チーム中 35 チームの情報が含まれていました (テスト目的で作成されたチームは多数あります)。
チームごとのアクティビティデータへのアクセス
チームごとのアクティビティ データには、登録済みの Azure AD アプリまたは Microsoft Graph PowerShell SDK を使用してアクセスできます。どちらの場合も、 レポート.読み取り.すべて 許可が必要です。
チームごとのアクティビティ データを取得するクエリは簡単です。
Write-Host "Finding Teams Activity Data from the Graph..." $Uri = "https://graph.microsoft.com/beta/reports/getTeamsTeamActivityDetail(period='D90')?`$format=application/json" [array]$TeamsData = (Invoke-RestMethod -Uri $Uri -Headers $headers -Method Get)
$チームデータ データを受け取る配列には、メッセージ数、返信数、メンション数などの統計情報を格納する Value という配列が含まれます。各チームを処理し、各チームの統計を抽出することで、情報を簡単に報告できます。チームが最後にアクティブになってから(チャンネルアクティビティの場合)何日が経過したかの計算を含め、この仕事のやり方は次のとおりです。
$Report = [System.Collections.Generic.List[Object]]::new() ForEach ($Team in $TeamsData.Value) { $DaysSinceActive = (New-Timespan -Start ($Team.LastActivityDate -as [datetime]) -End ($Team.Reportrefreshdate -as [datetime])).Days $ReportLine = [PSCustomObject] @{ Team = $Team.teamName Privacy = $Team.teamType TeamId = $Team.teamId LastActivity = Get-Date ($Team.lastActivityDate) -format dd-MMM-yyyy ReportPeriod = $Team.Details.reportPeriod DaysSinceActive = $DaysSinceActive ActiveUsers = $Team.Details.activeUsers Posts = $Team.Details.postMessages Replies = $Team.Details.replyMessages Urgent = $Team.Details.urgentMessages Mentions = $Team.Details.mentions Guests = $Team.Details.guests ActiveChannels = $Team.Details.activeChannels Reactions = $Team.Details.reactions } $Report.Add($ReportLine) } #end ForEach
スクリプトは、Office365itpros.com GitHub リポジトリからダウンロードできます。図 2 に、出力がどのように見えるかを示します。

データは通常、実際の日付より 2 日遅れています。アクティビティデータを処理し、Graph アカウントを介してアクセス可能なリポジトリで利用できるようにするために必要な時間。現在、データには通常のチャンネルとプライベートチャンネルのアクティビティが含まれているように見えますが、 共有チャンネル.マイクロソフトは、この機能が一般公開された後に共有チャネル アクティビティを含めることは間違いありません。
登録済みの Azure AD アプリを使用したくない場合は、Microsoft Graph PowerShell SDK に接続して、 Invoke-MgGraphRequest データを取得するコマンドレット。例えば:
Connect-MgGraph -Scopes Report.Read.All Select-MgProfile beta $Uri = "https://graph.microsoft.com/beta/reports/getTeamsTeamActivityDetail(period='D90')?`$format=application/json" [array]$TeamsData = Invoke-MgGraphRequest -Method Get -Uri $Uri
データをフェッチした後、同じ種類のループがデータを抽出します。
不完全だが、持っているのはいい
Microsoft 365 グループと Teams アクティビティレポートスクリプトでは、Teams 管理センターからダウンロードしたチームごとのアクティビティデータを使用できます。代わりにグラフから取得したデータを使用するようにスクリプトをアップグレードできるため、作業が高速化され、管理者がデータを手動でダウンロードする必要がなくなります。それはすべて良いことですが、チームごとのアクティビティデータは、チームで何が起こるかの真に正確な画像を表していないという事実は変わりません。あなたが心配しているのがチャンネルの会話だけなら問題ありません。それは他のもののためにあまり良くありません。
ディスカッション
コメント一覧
まだ、コメントがありません