请求指导:编写PowerShell脚本获取Teams用户活动报告
方向指引:用PowerShell获取Teams用户活动报告数据
直接说结论:Teams管理中心的用户活动报告数据,本质是通过Microsoft Graph API提供的,你不用去“抓取”管理中心页面(这种方式不稳定且不被微软支持),用官方的Microsoft Graph PowerShell模块就能直接获取对应数据,这是最合规稳妥的路径。下面是具体步骤,适配你的有限经验:
1. 安装必备PowerShell模块
打开PowerShell(建议用管理员权限),执行以下命令安装官方模块:
Install-Module -Name Microsoft.Graph -Force -AllowClobber
如果提示需要安装NuGet provider,按提示确认即可。
2. 配置权限(关键)
要获取报告数据,需要Reports.Read.All权限。如果你的账号没有这个权限,找全局管理员帮忙:
- 要么给你的账号分配报告阅读器角色
- 要么通过Azure AD给Graph模块授权该权限(用人账号登录的话,直接用有权限的账号操作即可)
3. 连接到Microsoft Graph
执行命令登录你的O365账号,同时请求报告权限:
Connect-MgGraph -Scopes "Reports.Read.All"
弹出登录窗口后,用有权限的O365账号登录即可。
4. 获取对应报告数据
Teams管理中心里的用户活动报告,对应Graph里的几个命令,按需选择:
- 获取用户级详细活动数据(对应管理中心“用户活动详细信息”报告):
# Period参数可选D7/D30/D90/D180,对应7/30/90/180天的数据 $userActivityDetail = Get-MgReportTeamUserActivityUserDetail -Period D7 - 获取汇总用户活动数据(对应管理中心“用户活动汇总”图表):
$userActivitySummary = Get-MgReportTeamUserActivitySummary -Period D7 - 获取团队活动汇总数据(如果需要):
$teamActivitySummary = Get-MgReportTeamActivitySummary -Period D7
5. 导出数据(方便查看/制作图表)
把获取到的数据导出为CSV文件,直接用Excel打开即可生成图表:
$userActivityDetail | Export-Csv -Path "C:\Temp\TeamsUserActivityDetail.csv" -NoTypeInformation -Encoding UTF8
注意事项
- 报告数据存在延迟:微软通常会延迟24-48小时更新,无法获取实时数据
- 定期更新模块:执行
Update-Module -Name Microsoft.Graph保持模块版本最新 - 若遇权限错误,直接联系全局管理员确认账号权限是否到位
内容的提问来源于stack exchange,提问作者jam051
相关产品推荐
相关产品推荐

