使用 SharePoint Online PowerShell 來管理資料存取控管報告

雖然 SharePoint 系統管理中心提供 資料存取控管 功能,但有些組織偏好使用 PowerShell,透過指令碼和自動化來大規模管理設定。 本文描述如何使用 SharePoint Online PowerShell 模組來管理資料存取治理報告。

開始之前

請確定貴組織符合 SharePoint 進階管理的必要條件,包括 SharePoint Online PowerShell 模組需求

PowerShell 對資料存取治理的支援可從模組 Microsoft.Online.SharePoint.PowerShell 和版本 16.0.25409 或更新版本取得。

連線到 SharePoint 時,請執行不帶 Credential 參數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 帳戶的報告,請執行以下命令:

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

請牢記以下有關報告的要點:

  • 由於這些報告很全面,而且可能涵蓋租用戶中的所有資料,因此您最多可以建立兩個報告。 您可以為每個工作負載建立一個報告。
  • 無論組織規模有多大,第一份報告最多需要五天才能完成。 後續報告會在 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。
  • 輸出檔案限制為 1,000,000 列。
  • 不包括授予 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 的 EEEU 報告僅支援項目層級。 不支援網站層級商務用 OneDrive 的 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。 此命令會傳回目前的資料收集狀態,可以是 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 命令,透過使用報告識別碼來取得特定資料存取治理報告的目前狀態。

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 而非識別碼來檢視 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