如何使用 Microsoft Graph API 和 PowerShell 报告团队通道存储
Microsoft Teams 使用 SharePoint Online 来存储团队成员之间共享的文件,这已不是什么秘密。每个团队在该团队的 Microsoft 365 组拥有的 SharePoint Online 网站中都有一个文档库,创建新频道时,会在文档库中创建该频道的文件夹。
默认情况下,频道文件夹的名称与频道相同。使用 Exchange Online 或 PnP PowerShell 可以轻松检索详细信息。然而,当频道重命名时,事情会变得更加复杂。
名字有什么含义?
目前,当频道被重命名时,其文件夹不会更改(但希望很快就会更改!),这使得查找频道文件夹变得更加困难。私人频道因其关联的 SharePoint Online 网站而造成了另一层复杂性。
在使用 Teams 的大型组织中,报告并迁移这些数据非常困难。为了帮助了解 Teams 如何使用 SharePoint,我创建了一个简单的 Graph API/PowerShell 脚本,以在 CSV 文件中报告 Teams 频道及其 SharePoint 位置(您可以在此处从 GitHub 下载该脚本)。每个通道报告以下信息:
- 团队 ID - 团队/组的 Azure AD 对象 ID
- 团队名称——团队的名称
- 频道名称 - 频道的名称
- 通道类型 - 通道是标准通道还是私有通道
- SharePoint URL - Teams 频道存储位置的 URL,包括文件夹路径
- 使用的存储空间(字节)- 文件夹的当前存储大小
在本文中,我将引导您完成这些步骤,并展示如何自行运行该报告。
创建应用程序注册
由于相关脚本使用 Graph API,因此我们需要应用程序注册来验证和授权我们的查询。要设置注册的应用程序,您需要参考我之前为另一个基于图形的脚本撰写的这篇文章。
完成此操作后,您需要为此脚本授予应用程序权限,如图 1 所示:
运行脚本
要运行该脚本,您需要将其下载到本地计算机并在 PowerShell 中运行,并提供以下参数:
- ClientID - 应用程序注册的应用程序(客户端)ID
- TenantID - Azure AD 租户的目录(租户)ID
- ClientSecret - 为您的应用程序注册生成的客户端密钥
- CSVPath - 输出 CSV 的路径和名称
有了上述信息,就可以使用如下所示的命令运行脚本:
.\graph-Generate-Teams-Storage-Report.ps1 -ClientSecret $ClientSecret -ClientID $clientID -TenantID $TenantID -CSVPath ChannelReport.csv如果脚本成功运行,则不会有输出,但您始终可以为特别大的环境添加自己的进度条。
查看输出
脚本完成后,输出文件应显示每个团队和每个频道的行条目,包括关联的文件夹/库位置和使用的存储。它采用 CSV 格式,因此很容易过滤,可以根据需要进行排序,并且可以保存为 Excel 电子表格以执行一些更高级的分析。
如果频道名称和类型显示为“N/A”,则该条目适用于团队而不是特定频道。查看图 3 中的示例输出以了解预期结果:
概括
该脚本很简单,提供的信息虽然没有隐藏,但在尝试使用其他工具时整理起来可能很麻烦。
在审核云存储、Teams 使用情况或只是准备迁移时,此信息可能会变得非常宝贵。拥有一种快速且简单的方式来检索信息可以使生活变得更加轻松。
如果输出中缺少任何内容,您可以自定义脚本以添加它。与往常一样,请确保在运行之前先在生产环境中测试任何代码,以便您完全了解它将做什么。


