使用 SharePoint Online PowerShell 管理数据访问治理报告

虽然 SharePoint 管理中心门户中提供 数据访问治理 ,但大型组织通常会寻求 PowerShell 支持,以便通过脚本和自动化来管理规模。 本文档讨论通过 SharePoint Online PowerShell 模块提供的所有适当的 PowerShell 命令,用于从数据访问治理中管理报表。

重要

  • PowerShell 对数据访问治理的支持可从模块“Microsoft.Online.SharePoint.PowerShell”和版本“16.0.25409”开始获取。
  • 运行不带Credential 参数的 Connect-SPOService 命令。 我们t_支持使用 内联凭据 参数和最新的安全做法进行登录。

创建数据访问治理报告所需的内容

许可证要求是什么?

组织需要拥有适当的许可证并满足某些管理权限或角色才能使用本文中所述的功能。

首先,组织必须具有以下基本许可证之一:

  • Office 365 E3、E5 或 A5
  • Microsoft 365 E1、E3、E5 或 A5

此外,至少需要以下许可证之一:

  • 智能 Microsoft 365 Copilot 副驾驶®许可证:至少必须为组织中的一个用户分配 Copilot 许可证, (此用户不需要是 sharePoint 管理员) 。
  • Microsoft SharePoint 高级管理许可证: 作为独立购买提供。

管理员要求

您必须是 SharePoint 管理员 或具有等效权限。

其他信息

如果你的组织具有 Copilot 许可证,并且至少为组织中的一个人分配了 Copilot 许可证,则 SharePoint 管理员会自动获得对 Copilot 部署所需的 SharePoint 高级管理功能的访问权限。

对于没有 Copilot 许可证的组织,可以通过购买独立的 SharePoint 高级管理许可证来使用 SharePoint 高级管理功能

准备工作

您必须是 SharePoint 管理员 或在 Microsoft 365 中具有等效权限才能运行 PowerShell 管理员脚本。

在使用本文中的 PowerShell 脚本之前,需要执行以下步骤:

  1. 如果尚未下载,请下载最新的SharePoint Online 命令行管理程序

    注意

    如果你已安装早期版本的SharePoint Online Management Shell,请进入添加或删除程序并卸载 "SharePoint Online Management Shell"。

  2. 以 SharePoint 管理员 身份或在 Microsoft 365 Microsoft 365 中具有等效权限连接到 SharePoint。 若要了解具体操作步骤,请参阅 SharePoint 在线管理壳入门

使用 PowerShell 创建报表

使用 Start-SPODataAccessGovernanceInsight 命令生成具有适当筛选器和参数的所有报表

整个组织报表中的网站权限

SharePoint 管理员必须了解其组织中的权限设置,尤其是在 Copilot 采用后,因为它尊重用户和内容权限。 Copilot 的数据泄露风险随着具有权限/访问权限的用户数的增加而增加。 此报表提供对组织中每个 SharePoint 和 OneDrive 网站的“公开”(即拥有权限的用户数)的深入见解。

建议先运行此报表,以便快速了解组织中的权限。

此报表被视为“快照”报告,即此报告提供截至报告生成日期的整个组织的最新快照/状态。

若要为所有 SharePoint 网站生成报表,请运行以下命令:

Start-SPODataAccessGovernanceInsight -ReportEntity PermissionedUsers -ReportType Snapshot -Workload SharePoint -CountOfUsersMoreThan 0  -Name "OrgWidePermissionedUsersReportSharePoint"

若要为所有 OneDrive for Business 帐户生成报表,请运行以下命令:

Start-SPODataAccessGovernanceInsight -ReportEntity PermissionedUsers -ReportType Snapshot -Workload OneDriveForBusiness -CountOfUsersMoreThan 0  -Name "OrgWidePermissionedUsersReportODB"

查看有关报表运行的以下重要信息。

  • 由于这些报告是全面的,并且可能涵盖租户中的所有数据,因此允许的最大报表数为 2:每个工作负荷一个。
  • 无论组织规模如何,第一份报告始终最多需要五天才能完成。 后续报告在 24 小时内完成。
  • 这些报表在生成报告 前 48 小时 捕获数据。
  • 生成后,可以每 30 天再次运行一次。

这些命令生成一个列表,其中至少有一个用户可以访问网站中的任何内容。 此处提供了有关网站列表以及如何解释结果的详细信息。

了解租户中过度共享的程度后,可以跟踪过去 28 天内活动站点的进一步偏差。 你可以针对过去 28 天内在潜在过度共享的关键因素(例如“共享链接”或与“除外部用户以外的所有人”共享的内容)处于活动状态的网站上生成报告。

这些报告可用于识别在协作中处于活动状态的网站,因此需要更快的干预来缓解任何潜在的过度共享风险。 这些基于“RecentActivity”的报告标识在过去 28 天内生成最多共享链接的网站。

重要

如果您没有 Microsoft SharePoint 高级管理许可证,系统会要求你为基于“RecentActivity”的报表启用数据收集,以便产品开始收集相关审核数据以生成此报告。 启用后,数据收集并存储 28 天。 报告可以在 24 小时后生成,并包含来自收集点的数据。 如果三个月中甚至一次未生成任何报告,则数据收集将暂停并应再次启用。 若要为这些报表启用数据收集,请参阅 文档的此部分

Start-SPODataAccessGovernanceInsight -ReportEntity SharingLinks_Anyone -Workload SharePoint -ReportType RecentActivity

提供工作负载值作为“OneDriveForBusiness”,以获取具有相同条件的所有 OneDrive 帐户。

Start-SPODataAccessGovernanceInsight -ReportEntity SharingLinks_PeopleInYourOrg -Workload SharePoint -ReportType RecentActivity

提供工作负载值作为“OneDriveForBusiness”,以获取具有相同条件的所有 OneDrive 帐户。

Start-SPODataAccessGovernanceInsight -ReportEntity SharingLinks_Guests -Workload SharePoint -ReportType RecentActivity

提供工作负载值作为“OneDriveForBusiness”,以获取具有相同条件的所有 OneDrive 帐户。

过去 28 天内与除外部用户以外的所有人共享的内容

虽然共享链接是潜在过度共享的一种可能参与者,但另一个关键参与者是“除外部用户以外的所有人” (EEEU) 它使内容“公开”,即对整个组织可见,并使其他人能够轻松发现内容并获取访问权限。 这些报告标识在过去 28 天内在不同范围内主动使用 EEEU 的站点。

重要

如果您没有 Microsoft SharePoint 高级管理许可证,系统会要求你为基于“RecentActivity”的报表启用数据收集,以便产品开始收集相关审核数据以生成此报告。 启用后,数据收集并存储 28 天。 报告可以在 24 小时后生成,并包含来自收集点的数据。 如果三个月中甚至一次未生成任何报告,则数据收集将暂停并应再次启用。 若要为这些报表启用数据收集,请参阅 以下部分中的文档

过去 28 天内与除外部用户以外的所有人共享的网站

将 EEEU 添加到网站成员身份 (所有者、成员或访问者) 时,网站的全部内容将成为公共内容,并且更容易过度共享。 以下 PowerShell 命令触发报告以在过去 28 天内捕获此类站点:

Start-SPODataAccessGovernanceInsight -ReportEntity EveryoneExceptExternalUsersAtSite -Workload SharePoint -ReportType RecentActivity -Name "PublicSiteViaEEEU"

注意

目前不支持在站点级别使用 EEEU 的 OneDriveForBusiness 报告。

过去 28 天内与除外部用户以外的所有人共享的项目

以下 PowerShell 命令触发报告以捕获过去 28 天内与 EEEU 共享特定项 (文件/文件夹/列表) 的网站:

Start-SPODataAccessGovernanceInsight -ReportEntity EveryoneExceptExternalUsersAtSite -Workload SharePoint -ReportType RecentActivity -Name "PublicSiteViaEEEU"

提供工作负载值作为“OneDriveForBusiness”,以获取具有相同条件的所有 OneDrive 帐户。

文件中的敏感度标签报告

此 PowerShell 命令触发报表以列出自报表生成日期起使用给定“标签”标记了特定项的网站。

首先,使用“安全性和符合性”PowerShell 模块检索标签名称或标签 GUID。

Get-Label | Format-Table -Property DisplayName, Name, GUID, ContentType

然后,使用 Name AND GUID 检索标记有给定标签名称或 GUID 的文件的网站。

Start-SPODataAccessGovernanceInsight -ReportEntity SensitivityLabelForFiles -Workload SharePoint -ReportType Snapshot -FileSensitivityLabelGUID "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1" -FileSensitivityLabelName Secret

注意

目前,不支持带有标记文件的“OneDriveForBusiness”帐户的报告。

最近基于活动的报表的数据收集

重要

如果您没有 Microsoft SharePoint 高级管理许可证,系统会要求你为基于“RecentActivity”的报表启用数据收集,以便产品开始收集相关审核数据以生成此报告。 启用后,报表可在 24 小时后生成,并包含来自收集点的数据。 数据存储 28 天。 如果三个月中甚至一次未生成任何报告,则数据收集将暂停并应再次启用。

启用数据收集

此 PowerShell 命令开始收集过去 28 天内有关活动的报表的审核数据。

Start-SPOAuditDataCollectionForActivityInsights -ReportEntity SharingLinks_Anyone

ReportEntity 参数的适用值为 SharingLinksAnyone、SharingLinksPeopleInYourOrg、SharingLinksGuests、EveryoneExceptExternalUsersAtSite、EveryoneExceptExternalUsersForItems、CopilotAppInsights

禁用数据收集

此 PowerShell 命令停止收集过去 28 天内活动报告的审核数据。

Stop-SPOAuditDataCollectionForActivityInsights -ReportEntity SharingLinks_Anyone

检查数据收集状态

启用数据收集后,可以在 24 小时后生成报告。 若要检查是否可以生成报表,请使用 PowerShell 命令 Get-SPOAuditDataCollectionStatusForActivityInsights。 命令返回当前数据收集状态,可以是 NotInitiatedInProgressPaused。 当状态为 InProgress 时,可以生成报告。

Get-SPOAuditDataCollectionStatusForActivityInsights -ReportEntity SharingLinks_Anyone

使用 PowerShell 跟踪报表

重要

所有报表创建都会生成 GUID 作为输出,可用于跟踪报表状态。

Start-SPODataAccessGovernanceInsight -ReportEntity SensitivityLabelForFiles -Workload SharePoint -ReportType Snapshot -FileSensitivityLabelGUID "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1" -FileSensitivityLabelName Secret
ReportId                             Status
--------                             ------
a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 NotStarted

使用 Get-SPODataAccessGovernanceInsight 命令使用报表 ID 检索特定数据访问治理报表的当前状态。

Get-SPODataAccessGovernanceInsight -ReportID a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
ReportId          : a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
ReportEntity      : SharingLinks_Anyone
Status            : InQueue
Workload          : SharePoint
TriggeredDateTime : 11/13/2024 19:32:34
CreatedDateTime   : 11/13/2024 20:09:23
ReportStartTime   : 10/17/2024 19:32:33
ReportEndTime     : 11/13/2024 19:32:33
ReportType        : RecentActivity
SitesFound        : 120

ReportStartTime 和 ReportEndTime 指示生成报表的数据时间段。 报表生成完成后,状态标记为“已完成”。

还可以使用筛选器 ReportEntity 而不是 ID 查看 DAG 报表的当前状态。 reportID 在输出中列出,稍后需要该报表才能下载特定报表。

Get-SPODataAccessGovernanceInsight -ReportEntity PermissionedUsers
ReportId             : a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
ReportName           : PermissionReportFor1AsOfSept
ReportEntity         : PermissionedUsers
Status               : Completed
Workload             : SharePoint
TriggeredDateTime    : 09/18/2024 11:06:16
CreatedDateTime      : 09/22/2024 12:12:48
ReportType           : Snapshot
CountOfUsersMoreThan : 1
CountOfSitesInReport : 7
CountOfSitesInTenant : 22
Privacy              : All
Sensitivity          : {All}
Templates            : {All}

ReportId             : b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2
ReportName           : PermissionReportFor1AsOfOct
ReportEntity         : PermissionedUsers
Status               : Completed
Workload             : SharePoint
TriggeredDateTime    : 10/09/2024 14:15:40
CreatedDateTime      : 10/09/2024 15:18:23
ReportType           : Snapshot
CountOfUsersMoreThan : 100
CountOfSitesInReport : 0
CountOfSitesInTenant : 26
Privacy              : All
Sensitivity          : {All}
Templates            : {All}

使用 PowerShell 查看和下载报表

若要下载特定报表,需要 reportID。 使用 Get-SPODataAccessGovernanceInsight 命令检索 reportID,并使用 Export-SPODataAccessGovernanceInsight 命令将报表下载到指定路径。

Export-SPODataAccessGovernanceInsight -ReportID a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 -DownloadPath "C:\Users\TestUser\Documents\DAGReports"

这会将 CSV 文件下载到指定路径。 此处讨论了每个报表的 CSV/视图的详细信息。

注意

默认下载路径是“Downloads”文件夹。

使用 PowerShell 的修正作

生成数据访问治理报告后,SharePoint 管理员可以执行 此处所述的修正作。 以下部分介绍用于触发和跟踪“站点访问评审”的 PowerShell 命令作为修正作。

使用 PowerShell 启动站点访问评审

使用 Start-SPOSiteReview 命令为数据访问治理报表下列出的特定站点启动站点访问评审。 数据访问治理报告提供了应在其中启动评审的上下文。 从 CSV 文件检索 reportID、网站 ID,并提供注释,以便网站所有者清楚地了解评审的目的。

Start-SPOSiteReview -ReportID a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 -SiteID c2c2c2c2-dddd-eeee-ffff-a3a3a3a3a3a3 -Comment "Check for org wide access"
ReviewId                : a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
SiteId                  : c2c2c2c2-dddd-eeee-ffff-a3a3a3a3a3a3
ReviewInitiatedDateTime : 13-11-2024 20:55:41
ReportEntity            : PermissionedUsers
Status                  : Pending
AdminComment            : Check for org wide access
SiteName                : All Company

这触发电子邮件给网站所有者, 如此处所述

使用 PowerShell 跟踪站点访问评审

使用 Start-SPOSiteReview 命令跟踪站点访问评审的状态。 对于特定评审,可以使用 ReviewID 输出中所示的值。 若要检索与报表模块相关的所有评审,请使用 ReportEntity 参数。

Get-SPOSiteReview -ReportEntity PermissionedUsers
ReviewId                : a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
SiteId                  : c2c2c2c2-dddd-eeee-ffff-a3a3a3a3a3a3
ReviewInitiatedDateTime : 13-11-2024 20:55:41
ReviewCompletedDateTime :
ReportCreatedDateTime   : 13-11-2024 23:25:41
ReportEndDateTime       : 13-11-2024 23:25:41
ReportEntity            : PermissionedUsers
Status                  : Pending
AdminComment            : Check for org wide access
SiteName                : All Company
ReviewerEmail           :
ReviewerComment         :

ReviewId                : a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
SiteId                  : c2c2c2c2-dddd-eeee-ffff-a3a3a3a3a3a3
ReviewInitiatedDateTime : 24-10-2024 11:07:39
ReviewCompletedDateTime : 15-11-2024 11:07:39
ReportCreatedDateTime   : 15-10-2024 09:24:47
ReportEndDateTime       : 15-10-2024 11:39:52
ReportEntity            : PermissionedUsers
Status                  : Completed
AdminComment            : Check for org wide access
SiteName                : All Company
ReviewerEmail           : Jon@contosofinance.com
ReviewerComment         : Removed EEEU for sensitive documents