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

虽然 SharePoint 管理中心提供 数据访问治理 ,但一些组织更喜欢使用 PowerShell 通过脚本和自动化来大规模管理设置。 本文介绍如何使用 SharePoint Online PowerShell 模块管理数据访问治理报告。

开始之前

确保你的组织满足 SharePoint 高级管理的先决条件,包括 SharePoint Online PowerShell 模块要求。

对数据访问治理的 PowerShell 支持可从模块 Microsoft.Online.SharePoint.PowerShell 和版本 16.0.25409 或更高版本获得。

连接到 SharePoint 时,请运行 Connect-SPOService命令而不 使用 Credential 参数。 根据安全最佳做法,不支持使用凭据参数登录。

使用 PowerShell 创建报表

有关常规 PowerShell 语法、参数和示例,请参阅 Start-SPODataAccessGovernanceInsight。

有关具体的报告示例,请参阅本文的以下部分。

生成站点权限状态报告

需要了解组织中的权限设置,尤其是在采用 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"

请牢记关于报告的以下要点:

  • 由于这些报告很全面,并且可能涵盖租户中的所有数据,因此最多可以创建两个报告。 可以为每个工作负载创建一个报告。
  • 无论组织规模如何,第一个报表始终需要长达 5 天才能完成。 后续报表将在 24 小时内完成。
  • 这些报告在报告生成前最多捕获 48 小时的数据。
  • 生成这些报告后,每隔 30 天可以再次运行一次。

这些命令生成一个列表,列出至少一个用户可以访问网站内任何内容的所有网站。 有关如何解释报表的详细信息,请参阅 如何查看组织报表的网站权限。

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

生成用户权限状态报告

虽然整个组织的站点权限报告可帮助你了解整个租户中权限的当前状态,但某些方案需要发现给定用户可访问的站点。 有关详细信息,请参阅 使用快照报告获取组织的网站权限基线。 以下部分介绍数据访问治理如何帮助使用 PowerShell 生成此类报告。

首先,使用 Get-MgUser 命令提取要为其生成报告的用户的 UPN 或用户主体名称。 然后运行以下 PowerShell 命令,该命令将触发报表,列出可供这些用户访问的 SharePoint 网站。

Start-SPODataAccessGovernanceInsight -ReportEntity PermissionsReport -ReportType Snapshot -Workload SharePoint -Name "UserSharePointReport" -UserEmailList "a@contoso.com","b@contoso.com"

重要

虽然参数名为 UserEmailList,但报表需要用户主体名称。 单个请求中最多可以包含 100 个用户。

若要列出给定用户可访问的 OneDrive 帐户,请将工作负载指定为 OneDriveForBusiness.

Start-SPODataAccessGovernanceInsight -ReportEntity PermissionsReport -ReportType Snapshot -Workload OneDriveForBusiness -Name "UserOneDriveReport" -UserEmailList "a@contoso.com","b@contoso.com"

生成有关通过特殊 SharePoint 组共享的网站和文件的报告

网站权限报告会告知你哪些网站过度共享。 若要查找特殊组“除外部用户以外的所有人” (EEEU) 或“所有人”为收件人的确切项目,请生成此报告。 有关报告以及如何解释其输出的详细信息,请参阅 获取“除外部用户以外的所有人”和“所有人”的项目级权限详细信息。

重要

此报告需要 2026 年 4 月 30 日发布的模块 Microsoft.Online.SharePoint.PowerShell 版本 16.0.27215.12000 或更高版本。 还需要 SharePoint 高级管理管理员角色,该角色必须由全局管理员分配。 有关详细信息,请参阅 分配 SharePoint 高级管理管理员角色。

要生成 EEEU 报告,请运行以下命令:

Start-SPODataAccessGovernanceInsight -ReportEntity EveryoneExceptExternalUsers -ReportType Snapshot

若要为所有人生成报告,请更改 ReportEntity 参数值:

Start-SPODataAccessGovernanceInsight -ReportEntity Everyone -ReportType Snapshot

请牢记关于报告的以下要点:

  • 该报表不采用工作负载参数。 输出涵盖 SharePoint 和 OneDrive。
  • 输出文件限制为 100 万行。
  • 不包括授予 EEEU 或 Everyone 的系统文件和系统组的权限。

若要跟踪报告并下载结果,请参阅 使用 PowerShell 跟踪报告 和使用 PowerShell 查看和下载报告。

使用 PowerShell 在文件报告中生成敏感度标签

运行此 PowerShell 命令以触发报告,以列出截至报告生成日期已使用给定标签标记了特定项目的网站。

首先,使用 安全 & 合规性 PowerShell 模块检索标签名称或标签 GUID。

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

然后,使用名称和 GUID 检索标有给定标签名称或 GUID 的文件的站点。

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

注意

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

使用共享链接活动报告来标识处于协作状态且需要更快干预以降低任何潜在过度共享风险的站点。 这些基于最近活动的报告可识别在过去 28 天内生成最多共享链接的站点。

生成以下共享链接活动报告:

  • 在过去 28 天内共享链接 的任何用户创建 的网站
  • 在过去 28 天内在组织中创建 People 共享链接的网站
  • 在过去 28 天内) 共享链接的特定 人员 (来宾的网站
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) (“除外部用户之外的所有人”。 EEEU 使内容公开 (对整个组织可见) ,并使其他人可以轻松发现内容和访问。 这些报告确定了在过去 28 天内在各种范围内积极使用 EEEU 的站点。

您可以生成以下EEEU活动报告:

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

重要

目前,OneDrive for Business 的 EEEU 报告仅支持项目级别。 不支持站点级别的 OneDrive for Business EEEU 报告。 如果没有 Microsoft SharePoint 高级管理许可证,则必须为最近基于活动的报告启用数据收集,以便收集相关审核数据来生成报告。 启用后,将收集数据并存储 28 天。 可在 24 小时后生成该报告,并且该报告包含来自收集点的数据。 如果您在三个月内没有生成一次报告,则数据收集将暂停,您必须再次启用它。 要为这些报告启用数据收集,请参阅 管理基于最近活动的报告的数据收集部分。

标识过去 28 天内与“除外部用户以外的所有人”共享的站点

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

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

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

运行以下 PowerShell 命令以触发报表,以捕获你在过去 28 天内与 EEEU 共享的 SharePoint 站点的特定项目 (文件、文件夹或列表) :

Start-SPODataAccessGovernanceInsight -ReportEntity EveryoneExceptExternalUsersForItems -Workload SharePoint -ReportType RecentActivity -Name "PublicItemsViaEEEU"

注意

将工作负荷值替换为 OneDriveForBusiness 具有相同条件的所有 OneDrive 帐户,以获取与“除外部用户以外的所有人”共享项目。

管理基于最近活动的报告的数据收集

重要

如果没有 Microsoft SharePoint 高级管理许可证,则必须为最近基于活动的报告启用数据收集,以便收集相关审核数据来生成报告。 启用后,您可以在 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。 该命令返回当前数据收集状态,可以是 NotInitiated、 或 InProgress。Paused 当状态为 时,可以生成报告。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

并ReportStartTimeReportEndTime显示报表的数据周期。 状态将更改为 Completed 报表生成完成时。

还可以通过使用筛选器 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 文件下载到指定的路径。 你可以在如何在 SharePoint 管理中心内访问数据访问治理报告中找到有关每个报告的 CSV 和视图的详细信息。

注意

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

使用 PowerShell 执行修正操作

生成数据访问治理报告后,您可以执行补救措施,如 数据访问治理报告中的补救措施中所述。

以下部分介绍用于启动和跟踪站点访问评审作为补救措施的 PowerShell 命令。

使用 PowerShell 启动站点访问评审

使用 Start-SPOSiteReview 命令启动特定网站的站点访问评审,该站点列在数据访问治理报告下。 数据访问治理报告提供了应启动评审的上下文。 从 CSV 文件检索报告 ID 和网站 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

此命令会生成发送电子邮件给网站所有者,如 如何启动网站访问评审中所述。

重要

每个日历月最多可以从“ 整个组织的网站权限 ”报告发起 1,000 次网站访问评审。 此限制在每个新月初重置。

使用 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