网站搜索

如何使用 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 使用情况或只是准备迁移时,此信息可能会变得非常宝贵。拥有一种快速且简单的方式来检索信息可以使生活变得更加轻松。

如果输出中缺少任何内容,您可以自定义脚本以添加它。与往常一样,请确保在运行之前先在生产环境中测试任何代码,以便您完全了解它将做什么。

相关文章