SharePoint Online PowerShell を使用してデータ アクセス ガバナンス レポートを管理する

SharePoint 管理センターでは データ アクセス ガバナンス を利用できますが、一部の組織では PowerShell を使用して、スクリプトや自動化を通じて設定を大規模に管理することを好みます。 この記事では、SharePoint Online PowerShell モジュールを使用してデータ アクセス ガバナンス レポートを管理する方法について説明します。

開始する前に

組織が、SharePoint Online PowerShell モジュールの要件など、SharePoint 高度な管理の前提条件を満たしているorganization を確認します。

データ アクセス ガバナンスの PowerShell サポートは、モジュール Microsoft.Online.SharePoint.PowerShell およびバージョン 16.0.25409 以降から利用できます。

SharePoint に接続するときは、資格情報パラメーターを指定せずにConnect-SPOService コマンドを実行します。 セキュリティのベスト プラクティスに従って、credential パラメーターを使用したサインインはサポートされていません。

PowerShell を使用してレポートを作成する

一般的な PowerShell 構文、パラメーター、例については、「 Start-SPODataAccessGovernanceInsight」を参照してください。

レポートの具体的な例については、この記事の次のセクションを参照してください。

サイトのアクセス許可状態レポートを生成する

特に Copilot の導入後は、ユーザーとコンテンツのアクセス許可が優先されるため、organization 内のアクセス許可の設定を理解する必要があります。 Copilot のデータ開示リスクは、アクセス許可またはアクセス権を持つユーザーの数とともに増加します。 サイトのアクセス許可状態レポートは、organization内のすべての SharePoint および OneDrive サイトへのアクセス許可を持つ一意のユーザー数に基づいて、潜在的な露出に関する詳細な分析情報を提供します。

最初にこのレポートを実行して、organization 内の権限の概要をすばやく把握します。 このレポートはスナップショット レポートです。 レポート生成日の時点での organization 全体の最新のスナップショットまたはステータスを提供します。

すべての 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 つのレポートを作成できます。 ワークロードごとに 1 つのレポートを作成できます。
  • 最初のレポートは、organization の規模に関係なく、常に最大 5 日間かかります。 それ以降のレポートは 24 時間以内に完了します。
  • これらのレポートは、レポート生成の最大 48 時間前にデータをキャプチャします。
  • これらのレポートを生成したら、30 日に 1 回もう一度実行できます。

これらのコマンドは、少なくとも 1 人のユーザーがサイト内の任意のコンテンツにアクセスできるすべてのサイトのリストを生成します。 レポートの解釈方法の詳細については、「How to view the site permissions for your organization report (組織レポートのサイト権限を表示する方法)を参照してください。

テナント内の過剰共有の範囲を理解したら、特に過去 28 日間のアクティブなサイトからのさらなる逸脱を追跡できます。 過去 28 日間に「共有リンク」や「外部ユーザー以外のすべてのユーザー」と共有されたコンテンツなど、過剰共有の可能性のある主要な要因においてアクティブなサイトに関するレポートを生成できます。

ユーザー権限状態レポートを生成する

organization全体のサイト権限レポートは、テナント全体の権限の現在の状態を理解するのに役立ちますが、一部のシナリオでは、特定のユーザーがアクセスできるサイトを検出する必要があります。 詳細については、「スナップショット レポートを使用して organization のサイト権限ベースラインを取得する」を参照してください。 次のセクションでは、PowerShell を使用してこのようなレポートを生成する際にデータ アクセス ガバナンスがどのように役立つかについて説明します。

最初に、 Get-MgUser コマンドを使用して、レポートを生成するユーザーの UPN またはユーザー プリンシパル名を取得します。 次に、次の PowerShell コマンドを実行し、それらのユーザーがアクセスできる SharePoint サイトを一覧表示するレポートをトリガーします。

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

重要

パラメーターの名前は UserEmailList ですが、レポートにはユーザー プリンシパル名が必要です。 1 つの要求に最大 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

Everyone のレポートを生成するには、 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 in your organization の共有リンクを作成したサイト
  • 過去 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 日間に "外部ユーザー以外のすべてのユーザー" と共有されたコンテンツを特定する

共有リンクは過剰共有の可能性に寄与する可能性がありますが、もう 1 つの主要な要因は「外部ユーザー以外のすべてのユーザー」(EEEU) です。 EEEUはコンテンツを公開し(organization全体に公開)、他の人がコンテンツを簡単に発見してアクセスできるようにします。 これらのレポートは、過去 28 日間にさまざまなスコープで EEEU をアクティブに使用したサイトを特定します。

以下のEEEUアクティビティ・レポートを生成できます。

  • 過去 28 日間に外部ユーザー以外のすべてのユーザーと共有されたサイト
  • 過去 28 日間に外部ユーザー以外のすべてのユーザーと共有されたアイテム

重要

現在、OneDrive for Business の EEEU レポートはアイテム レベルのみをサポートしています。 サイト レベルでの OneDrive for Business の EEEU レポートはサポートされていません。 Microsoft SharePoint 高度な管理 ライセンスをお持ちでない場合は、関連する監査データがレポートの作成に使用されて収集されるように、最近のアクティビティ ベースのレポートのデータ収集を有効にする必要があります。 有効にすると、データは収集され、28 日間保存されます。 このレポートは 24 時間後に生成でき、このレポートには収集時点からのデータが含まれます。 3 か月に 1 回もレポートを作成しない場合、データ収集は一時停止され、再度有効にする必要があります。 これらのレポートのデータ収集を有効にするには、「 最近のアクティビティ ベースのレポートのデータ収集を管理する」セクションを参照してください。

過去 28 日間に "外部ユーザー以外のすべてのユーザー" と共有されたサイトを特定する

EEEU をサイトのメンバーシップ (所有者、メンバー、または訪問者) に追加すると、サイトのコンテンツ全体が公開され、過剰共有されやすくなります。 次の PowerShell コマンドを実行して、SharePoint サイトについて過去 28 日間にそのようなサイトをキャプチャするレポートをトリガーします。

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

過去 28 日間に "外部ユーザー以外のすべてのユーザー" と共有されているアイテムを特定する

次の PowerShell コマンドを実行してレポートをトリガーし、過去 28 日間に SharePoint サイトについて EEEU と共有した特定のアイテム (ファイル、フォルダー、またはリスト) をキャプチャします。

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

注:

ワークロードの値を OneDriveForBusiness に置き換えて、同じ条件を持つすべての OneDrive アカウントのアイテムを "外部ユーザー以外のすべてのユーザー" と共有します。

最近のアクティビティ ベースのレポートのデータ収集を管理する

重要

Microsoft SharePoint 高度な管理 ライセンスをお持ちでない場合は、関連する監査データがレポートの作成に使用されて収集されるように、最近のアクティビティ ベースのレポートのデータ収集を有効にする必要があります。 有効にすると、24 時間後にレポートを生成でき、そのレポートには収集時点からのデータが含まれます。 データは 28 日間保存されます。 3 か月に 1 回もレポートを作成しない場合、データ収集は一時停止され、再度有効にする必要があります。

最近のアクティビティ ベースのレポートのデータ収集を有効にする

この 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 を使用します。 このコマンドは、現在のデータ収集状態 ( NotInitiatedInProgress、または 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 に変わります。

ID の代わりにフィルター 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 ファイルをダウンロードします。 CSV と各レポートのビューの詳細については、「 SharePoint 管理センターのデータ アクセス ガバナンス レポートにアクセスする方法」を参照してください。

注:

既定のダウンロード パスは、[ ダウンロード] フォルダーです。

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

このコマンドは、「 サイト アクセス レビューを開始する方法」で説明されているように、サイトの所有者にメールを生成します。

重要

organizationレポート全体でサイトのアクセス許可から、カレンダー月に最大 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