다음을 통해 공유


Get-AdaptiveScopeMembers

이 cmdlet은 클라우드 기반 서비스에서만 사용할 수 있습니다.

Get-AdaptiveScopeMembers cmdlet을 사용하여 organization 적응형 범위의 현재 및 이전 멤버를 검색합니다. 적응형 범위는 보존 정책, 내부자 위험 관리 정책 및 보존 레이블 정책에 사용됩니다.

아래 구문 섹션에 있는 매개 변수 집합에 대한 자세한 내용은 Exchange cmdlet 구문을 참조하십시오.

구문

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>]

Description

이 cmdlet을 사용하여 적응형 scope 기존 및 이전 멤버(사용자, 그룹 또는 사이트)를 검색합니다.

Cmdlet 출력은 첫 번째 요소에 결과 메타데이터가 포함된 목록입니다. 후속 요소에는 멤버가 포함되었습니다.

메타데이터에는 다음 정보가 포함됩니다.

  • 요청에 대한 총 멤버 수입니다.
  • 현재 페이지에서 반환된 멤버 수입니다.
  • 추가 페이지를 사용할 수 있는지 여부입니다.

추가 페이지가 있는 경우 메타데이터에는 워터마크 값이 포함되고 IsLastPage 값은 False입니다.

다음 페이지를 검색하려면 cmdlet의 다음 호출에서 PageCookie 매개 변수에 워터마크 값을 전달합니다. AdaptiveReportFilters 매개 변수를 사용하여 멤버를 필터링합니다.

이 cmdlet을 사용하려면 보안 및 준수 PowerShell에서 사용 권한을 할당받아야 합니다. 자세한 내용은 Microsoft Purview 규정 준수 포털의 사용 권한을 참조하세요.

예제

예 1

Get-AdaptiveScopeMembers -Identity "US Finance Users"

이 예제에서는 적응형 scope 미국 재무 사용자의 멤버를 검색합니다. scope 10,000개 미만의 멤버를 포함하는 경우 모든 멤버가 반환됩니다.

더 큰 범위의 경우 처음 10,000명의 멤버만 포함되며 응답의 첫 번째 개체에는 후속 페이지를 요청하는 데 사용할 수 있는 워터마크가 있는 메타데이터가 포함됩니다.

예 2

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

이 예제에서는 적응형 scope 미국 재무 사용자의 모든 멤버를 반환합니다.

중요: 큰 적응형 범위에 PageResultSize 값 무제한을 사용하지 않는 것이 좋습니다. 대규모 적응형 범위에서 무제한을 사용하면 장기 실행 요청과 일시적인 오류가 발생할 수 있으며, 이는 효율적으로 다시 시도될 수 없습니다.

예 3

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

이 예제에서는 적응형 scope 미국 재무 사용자의 총 멤버 수가 있는 메타데이터만 반환합니다.

예 4

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

이 예제에서는 적응형 scope 미국 재무 사용자의 멤버를 검색합니다. scope 30개 미만의 멤버를 포함하는 경우 모든 멤버가 반환됩니다.

더 큰 범위의 경우 처음 30명의 멤버만 포함되며 응답의 첫 번째 개체에는 후속 페이지를 요청하는 데 사용할 수 있는 워터마크가 있는 메타데이터가 포함됩니다.

예 5

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

다음은 적응형 scope 미국 재무 사용자의 현재 멤버를 검색하는 예제입니다. scope 현재 멤버가 10,000개 미만인 경우 모든 현재 멤버가 반환됩니다.

더 큰 범위의 경우 처음 10,000개의 현재 멤버만 포함되며 응답의 첫 번째 개체에는 후속 페이지를 요청하는 데 사용할 수 있는 워터마크가 있는 메타데이터가 포함됩니다.

예 6

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

이 예제에서는 적응형 scope 미국 재무 사용자의 과거 멤버를 검색합니다. scope 10,000개 미만의 이전 멤버를 포함하는 경우 모든 이전 멤버가 반환됩니다.

더 큰 범위의 경우 처음 10,000명의 이전 멤버만 포함되며 응답의 첫 번째 개체에는 후속 페이지를 요청하는 데 사용할 수 있는 워터마크가 있는 메타데이터가 포함됩니다.

예 7

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

이 예제에서는 사이트 URL에 또는 /teams/가 포함된 적응형 scope 미국 재무 사이트의 멤버를 검색합니다./personal/ 결과에 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"

다음은 적응형 scope 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'"
}

고객은 종종 검토, 감사, 오프라인 분석을 위해 적응형 scope 모든 멤버를 파일로 내보내거나 다른 팀과 공유해야 합니다. 이 Export-AdaptiveScopeMembers 도우미 스크립트는 scope 통해 자동으로 페이징하고, 각 페이지를 CSV 파일로 내보내고, 다시 시작할 실행 메타데이터를 작성하여 이 프로세스를 간소화합니다.

이 내보내기 워크플로를 다시 시작할 수 있습니다. 일시적인 오류, 네트워크 문제 또는 시간 제한으로 인해 스크립트가 중간에 중지되는 경우 다시 실행할 수 있습니다. 기존 메타데이터 파일을 읽고, 마지막으로 성공적으로 처리된 페이지에서 다시 시작하고, 모든 페이지를 검색할 때까지 내보내기를 계속합니다.

이 함수를 세션에 붙여넣고 원하는 매개 변수를 사용하여 호출합니다. 를 호출 Export-AdaptiveScopeMembers 하여 결과를 파일에 저장할 수 있습니다.

다음은 적응형 scope US Finance Users의 멤버를 검색하고 10,000명의 멤버마다 제공된 폴더 아래의 csv 파일에 저장하는 예제입니다. 폴더가 아직 없는 경우 생성됩니다.

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

다음은 적응형 scope 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 매개 변수는 결과를 구체화하는 데 사용되는 하나 이상의 필터를 지정합니다.

이 매개 변수는 각 키가 최대 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* 및 non-*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
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

Default
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Identity

적용 가능: Exchange Online, 보안 & 규정 준수

Identity 매개 변수는 적응형 scope 지정합니다. 적응형 scope 고유하게 식별하는 모든 값을 사용할 수 있습니다. 예시:

  • 이름
  • DN(고유 이름)
  • GUID

매개 변수 속성

형식:ComplianceRuleIdParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:0
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

적용 가능: Exchange Online, 보안 & 규정 준수

PageCookie는 cmdlet이 결과를 계속 검색해야 하는 책갈피를 지정합니다.

이전 요청에서 반환된 워터마크 값을 이 매개 변수의 값과 동일한 적응형 scope 사용합니다. 워터마크는 연속 토큰 역할을 하므로 cmdlet이 이전 페이지가 종료된 위치를 정확히 다시 시작하고 멤버의 다음 페이지를 가져올 수 있습니다.

중요: 워터마크 값을 수동으로 편집하거나 조작하면 건너뛴 페이지, 중복된 결과 또는 잘못된 요청이 발생할 수 있습니다. 항상 cmdlet에서 반환한 대로 워터마크 값을 정확하게 사용합니다.

형식:string
Default value:None
와일드카드 지원:False
DontShow:False
AdaptiveReportPagination
Position:Named
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-PageResultSize

적용 가능: Exchange Online, 보안 & 규정 준수

PageResultSize 매개 변수는 요청에 대해 반환할 최대 멤버 수를 지정합니다.

최상의 안정성과 성능을 위해 마지막 페이지에 도달할 때까지 여러 작은 페이지에서 멤버를 검색합니다. 이 방법은 자연스러운 중단점을 도입하고 대기 시간을 줄이며 일시적인 문제가 발생할 때 원활한 재시도를 허용합니다.

중요: 큰 적응형 범위에 PageResultSize 값 무제한을 사용하지 않는 것이 좋습니다. 대규모 적응형 범위에서 무제한을 사용하면 장기 실행 요청과 일시적인 오류가 발생할 수 있으며, 이는 효율적으로 다시 시도될 수 없습니다.

매개 변수 속성

형식:UnlimitedInt
Default value:10000
와일드카드 지원:False
DontShow:False

매개 변수 집합

Default
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-State

적용 가능: Exchange Online, 보안 & 규정 준수

State 매개 변수는 적응형 scope 멤버의 상태를 지정합니다. 유효한 값은 다음과 같습니다.

  • 추가됨: 적응형 scope 현재 멤버입니다.
  • 제거됨: 적응형 scope 이전 멤버입니다.

매개 변수 속성

형식:LocationState
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

Default
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.