次の方法で共有


Get-AdaptiveScopeMembers

このコマンドレットは、クラウドベースのサービスでのみ使用できます。

Get-AdaptiveScopeMembers コマンドレットを使用して、organization内のアダプティブ スコープの現在および過去のメンバーを取得します。 アダプティブ スコープは、アイテム保持ポリシー、Insider Risk Management ポリシー、保持ラベル ポリシーで使用されます。

以下の構文セクションのパラメーター セットの詳細については、「Exchangeのコマンドレット構文」を参照してください。

構文

Identity (既定)

Get-AdaptiveScopeMembers
    [-Identity] <ComplianceRuleIdParameter>
    [<CommonParameters>]

Default

Get-AdaptiveScopeMembers
    [-Identity] <ComplianceRuleIdParameter>
    [-AdaptiveReportFilters <PswsHashtable>]
    [-PageResultSize <UnlimitedInt>]
    [-State <LocationState>]
    [<CommonParameters>]

AdaptiveReportPagination

Get-AdaptiveScopeMembers
    [-Identity] <ComplianceRuleIdParameter>
    -PageCookie <string>
    [<CommonParameters>]

説明

このコマンドレットを使用して、アダプティブ スコープの既存および過去のメンバー (ユーザー、グループ、またはサイト) を取得します。

コマンドレットの出力は、最初の要素に結果メタデータが含まれるリストです。 後続の要素には、メンバーが含まれます。

メタデータには、次の情報が含まれます。

  • 要求のメンバーの合計数。
  • 現在のページで返されるメンバーの数。
  • 追加のページを使用できるかどうか。

追加のページが存在する場合、メタデータには透かし値が含まれており、IsLastPage 値は False です。

次のページを取得するには、コマンドレットの次の呼び出しで PageCookie パラメーターに透かし値を渡します。 AdaptiveReportFilters パラメーターを使用して、メンバーをフィルター処理します。

セキュリティ/コンプライアンス PowerShell でこのコマンドレットを使用するには、アクセス許可が割り当てられている必要があります。 詳細については、「Microsoft Purview コンプライアンス センターのアクセス許可」 を参照してください。

例 1

Get-AdaptiveScopeMembers -Identity "US Finance Users"

この例では、アダプティブ スコープ US Finance Users のメンバーを取得します。 スコープに含まれるメンバー数が 10,000 未満の場合は、すべてのメンバーが返されます。

より大きなスコープの場合、最初の 10,000 人のメンバーのみが含まれ、応答の最初のオブジェクトには、後続のページを要求するために使用できる透かしを含むメタデータが含まれています。

例 2

Get-AdaptiveScopeMembers -Identity "US Finance Users" -PageResultSize Unlimited

この例では、アダプティブ スコープ US Finance Users のすべてのメンバーを返します。

重要: 大規模なアダプティブ スコープに対して PageResultSize 値 Unlimited を使用することはお勧めしません。 大規模なアダプティブ スコープで無制限を使用すると、実行時間の長い要求や、効率的に再試行できない一時的なエラーが発生する可能性があります。

例 3

Get-AdaptiveScopeMembers -Identity "US Finance Users" -PageResultSize 0

この例では、アダプティブ スコープ US Finance Users の合計メンバー数を持つメタデータのみを返します。

例 4

Get-AdaptiveScopeMembers -Identity "US Finance Users" -PageResultSize 30

この例では、アダプティブ スコープ US Finance Users のメンバーを取得します。 スコープに含まれるメンバーが 30 個未満の場合は、すべてのメンバーが返されます。

より大きなスコープの場合は、最初の 30 人のメンバーのみが含まれ、応答の最初のオブジェクトには、後続のページを要求するために使用できる透かしを含むメタデータが含まれています。

例 5

Get-AdaptiveScopeMembers -Identity "US Finance Users" -State Added

この例では、アダプティブ スコープ US Finance Users の現在のメンバーを取得します。 スコープに含まれる現在のメンバーが 10,000 未満の場合は、現在のすべてのメンバーが返されます。

より大きなスコープの場合、現在のメンバーの最初の 10,000 のみが含まれ、応答の最初のオブジェクトには、後続のページを要求するために使用できる透かしを含むメタデータが含まれています。

例 6

Get-AdaptiveScopeMembers -Identity "US Finance Users" -State Removed

この例では、アダプティブ スコープ US Finance Users の過去のメンバーを取得します。 スコープに含まれる過去のメンバーの数が 10,000 未満の場合は、すべての過去のメンバーが返されます。

より大きなスコープの場合、最初の 10,000 個の過去のメンバーのみが含まれ、応答の最初のオブジェクトには、後続のページを要求するために使用できる透かしを含むメタデータが含まれています。

例 7

Get-AdaptiveScopeMembers -Identity "US Finance Sites" -AdaptivereportFilters @{"SiteUrlContainsAny" = @("/personal/", "/teams/")}

次の使用例は、サイト URL に /personal/ または /teams/が含まれるアダプティブ スコープ US Finance Sites のメンバーを取得します。 結果に含まれるメンバー数が 10,000 未満の場合は、すべて返されます。

より大きな結果を得るには、最初の 10,000 のみが含まれ、応答の最初のオブジェクトには、後続のページを要求するために使用できる透かしを含むメタデータが含まれています。

例 8

$scope="US Finance Users"; $size=200; $cookie=$null
$all=@()
do {
  $page = Get-AdaptiveScopeMembers -Identity $scope -Size $size -PageCookie $cookie
  if(-not $page){ break }
  $meta = $page[0]
  if($meta.CurrentPageMemberCount -gt 0){ $all += $page[1..($page.Count-1)] }
  $cookie = if($meta.IsLastPage){ $null } else { $meta.Watermark }
} while($cookie -ne $null)
$all | Export-Csv -NoTypeInformation -Path "C:\Data\AdaptiveScopeMembers_$($scope -replace ' ','_').csv"

この例では、アダプティブ スコープ US Finance Users 200 メンバーのメンバーを一度に取得し、一覧に保存します。 結果は、指定した CSV ファイルに保存されます。

例 9

function Export-AdaptiveScopeMembers {
    [CmdletBinding()] param([string]$Scope,[string]$Out,[int]$Size=10000,[bool]$Resume=$true)
  $scope=$Scope; $out=$Out; $size=$Size;
  $meta=Join-Path $out "$scope-exportadaptivescopemembersexecutioninfo.json"
  if (-not (Test-Path $out)) { New-Item -ItemType Directory -Path $out | Out-Null }
  $m = if ($resume -and (Test-Path $meta)) { Get-Content $meta -Raw | ConvertFrom-Json } else {$null}
  $cookie = if ($m) {$m.Watermark} else {$null}; $page = if ($m -and $m.IsLastPage -ne $true) { $m.LastPageProcessed + 1 } else {1}; $isLast=$false
  do {
    $res = if ($cookie) { Get-AdaptiveScopeMembers -Identity $scope -PageCookie $cookie -WarningAction SilentlyContinue} else { Get-AdaptiveScopeMembers -Identity $scope -PageResultSize $size -WarningAction SilentlyContinue }
    $metaObj = $res[0]; $members = $res[1..($res.Count-1)]
    if ($members.Count) { $file=Join-Path $out "$scope-part$($page).csv"; $members | Export-Csv $file -NoTypeInformation; Write-Host "Exported $($members.Count) of page $page to file '$file'" }
    $cookie = $metaObj.Watermark; $isLast = $metaObj.IsLastPage
    $status = @{TimestampUtc=(Get-Date).ToUniversalTime().ToString("o"); TotalResults=$metaObj.TotalMemberCount; PageSize=$metaObj.CurrentPageMemberCount; Identity=$metaObj.Identity; Watermark=$cookie; LastPageProcessed=$page; IsLastPage=$metaObj.IsLastPage}
    if ($isLast)   {
      $status = @{TimestampUtc=(Get-Date).ToUniversalTime().ToString("o"); TotalResults=$metaObj.TotalMemberCount; Identity=$metaObj.Identity; Watermark=$cookie; LastPageProcessed=$page; IsLastPage=$metaObj.IsLastPage}
    }
    $status | ConvertTo-Json | Set-Content $meta
    $page++
  } while (-not $isLast)
  Write-Host "Completed exporting members of adaptive scope '$scope' to folder '$out'"
}

多くの場合、顧客は、レビュー、監査、オフライン分析、または他のチームと共有するために、アダプティブ スコープのすべてのメンバーをファイルにエクスポートする必要があります。 この Export-AdaptiveScopeMembers ヘルパー スクリプトは、スコープを自動的にページングし、各ページを CSV ファイルにエクスポートし、再開の実行メタデータを書き込むことで、このプロセスを簡略化します。

このエクスポート ワークフローは 再起動可能です。 一時的な障害、ネットワークの問題、またはタイムアウトが原因でスクリプトが途中で停止した場合は、もう一度実行するだけで済みます。 既存のメタデータ ファイルを読み取り、最後に正常に処理されたページから再開し、すべてのページが取得されるまでエクスポートを続行します。

この関数をセッションに貼り付け、目的のパラメーターで呼び出します。 Export-AdaptiveScopeMembersを呼び出して結果をファイルに保存できます。

次の使用例は、アダプティブ スコープ US Finance Users のメンバーを取得し、10,000 人のメンバーごとに指定されたフォルダーの下の csv ファイルに保存します。 フォルダーがまだ存在しない場合は作成されます。

Export-AdaptiveScopeMembers -Scope "US Finance Users" -Out "D:\adaptivescopedetails".

次の使用例は、アダプティブ スコープ US Finance Users のメンバーを取得し、200 人ごとにメンバーを指定されたフォルダーの下の csv ファイルに保存します。 フォルダーがまだ存在しない場合は作成されます。

Export-AdaptiveScopeMembers -Scope "US Finance Users" -Out "D:\adaptivescopedetails" -Size 200.

既定では、-Resume パラメーターは $true に設定されているため、PowerShell セッションが中断された場合、エクスポート プロセスは最後に完了したページから自動的に続行されます。 最初からエクスポートを開始し、以前に保存した進行状況を上書きするには、$falseを指定します。

Export-AdaptiveScopeMembers -Scope "US Finance Users" -Out "D:\adaptivescopedetails" -Size 200 -Resume $false

パラメーター

-AdaptiveReportFilters

適用対象: Exchange Online、セキュリティ & コンプライアンス

AdaptiveReportFilters パラメーターは、結果を絞り込むために使用される 1 つ以上のフィルターを指定します。

このパラメーターは、各キーが最大 10 個の値のリスト (配列) にマップされるハッシュ テーブルを受け入れます。 有効なフィルター キーは次のとおりです。

  • MailboxGuidEqualsAny
  • MailboxGuidNotEqualsAny
  • ObjectIdEqualsAny
  • ObjectIdNotEqualsAny
  • SiteIdEqualsAny
  • SiteIdNotEqualsAny
  • SiteUrlContainsAny
  • SiteUrlEqualsAny
  • SiteUrlNotContainsAny
  • SiteUrlNotEqualsAny
  • SiteUrlNotStartsWithAny
  • SiteUrlStartsWithAny
  • SmtpAddressEqualsAny
  • SmtpAddressNotEqualsAny
  • SmtpAddressNotStartsWithAny
  • SmtpAddressStartsWithAny
  • UpnEqualsAny
  • UpnNotEqualsAny
  • UpnNotStartsWithAny
  • UpnStartsWithAny

複数のキー値で論理 OR 構文が使用されます。 複数の非 *Not* キーでは、OR 構文が使用されます。 *Not* キーと非 *Not キーが混在している場合は、論理 AND 構文が使用されます。

UPN プレフィックスでフィルター処理するパラメーター値の例:

@{UpnStartsWithAny = @("john", "mary")

SMTP アドレス別に含めるパラメーター値の例と UPN によって除外するパラメーター値の例:

@{SmtpAddressEqualsAny = @("alice@contoso.com","bob@contoso.com"); UpnNotEqualsAny = @("bob.old@contoso.com")}

SMTP アドレスまたは UPN で含めるパラメーター値の例

@{SmtpAddressEqualsAny = @("alice@contoso.com","bob@contoso.com"); UpnEqualsAny = @("bob.old@contoso.com")}

パラメーターのプロパティ

型:PswsHashtable
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

Default
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Identity

適用対象: Exchange Online、セキュリティ & コンプライアンス

Identity パラメーターは、アダプティブ スコープを指定します。 アダプティブ スコープを一意に識別する任意の値を使用できます。 例:

  • 名前
  • 識別名 (DN)
  • GUID

パラメーターのプロパティ

型:ComplianceRuleIdParameter
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

適用対象: Exchange Online、セキュリティ & コンプライアンス

PageCookie は、コマンドレットが結果の取得を続行するブックマークを指定します。

前の要求から返された透かし値を、このパラメーターの値と同じアダプティブ スコープに使用します。 透かしは継続トークンとして機能し、コマンドレットは前のページが終了した場所を正確に再開し、メンバーの次のページをフェッチできます。

重要: ウォーターマーク値を手動で編集または作成すると、スキップされたページ、重複した結果、または無効な要求が発生する可能性があります。 常に、コマンドレットから返される正確な透かし値を使用します。

型:string
規定値:None
ワイルドカードのサポート:False
DontShow:False
AdaptiveReportPagination
配置:Named
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-PageResultSize

適用対象: Exchange Online、セキュリティ & コンプライアンス

PageResultSize パラメーターは、要求に返すメンバーの最大数を指定します。

信頼性とパフォーマンスを最大限に高めるには、最後のページに到達するまで、複数の小さいページのメンバーを取得します。 この方法では、自然なブレークポイントが導入され、待機時間が短縮され、一時的な問題が発生したときにシームレスな再試行が可能になります。

重要: 大規模なアダプティブ スコープに対して PageResultSize 値 Unlimited を使用することはお勧めしません。 大規模なアダプティブ スコープで無制限を使用すると、実行時間の長い要求や、効率的に再試行できない一時的なエラーが発生する可能性があります。

パラメーターのプロパティ

型:UnlimitedInt
規定値:10000
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

Default
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-State

適用対象: Exchange Online、セキュリティ & コンプライアンス

State パラメーターは、アダプティブ スコープのメンバーの状態を指定します。 有効な値は次のとおりです。

  • 追加: アダプティブ スコープの現在のメンバー。
  • 削除済み: アダプティブ スコープの以前のメンバー。

パラメーターのプロパティ

型:LocationState
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

Default
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、「about_CommonParameters」を参照してください。