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 |
-PageCookie
適用対象: 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」を参照してください。