다음을 통해 공유


Microsoft 365로 또는 Microsoft 365에서 마이그레이션된 사서함에 대한 사서함 보관 문제

원래 KB 번호: 2757430

문제

Microsoft 365로 또는 Microsoft 365에서 사서함을 마이그레이션하고 보관 사서함을 사용하는 경우 Microsoft Exchange Online의 MRS(Microsoft Exchange Mailbox Replication Service)에서 마이그레이션이 끝날 때 사서함의 ArchiveDomain 속성의 대상 도메인 값에 스탬프를 찍는 문제가 발생합니다.

참고 항목

보관 사서함이 없는 계정에서는 문제가 발생하지 않아야 합니다.

보관 사서함과 관련된 5가지 시나리오가 있습니다. 각 시나리오에는 다른 해결 방법이 필요합니다.

  • 시나리오 1 - 온보딩: 온-프레미스 Microsoft Exchange Server 사서함을 Exchange Online으로 이동합니다.
  • 시나리오 2 - 온보딩: 보관 사서함이 Exchange Online에 있으며 기본 사서함을 온-프레미스 Exchange Server 환경에서 Exchange Online으로 이동합니다.
  • 시나리오 3 - 오프보딩: 보관 사서함을 사용하도록 설정한 다음 기본 사서함과 보관 사서함을 모두 Exchange Online에서 온-프레미스 Exchange Server 환경으로 마이그레이션합니다. 기본 사서함이 이미 온-프레미스에 있고 보관 사서함을 Exchange Online에서 온-프레미스 Exchange Server 환경으로 오프보딩하기로 결정한 경우에도 비슷한 시나리오가 발생합니다.
  • 시나리오 4 - 오프보딩: 기본 사서함에 보관 사서함이 활성화되어 있지 않으며 기본 사서함을 Exchange Online에서 온-프레미스 Exchange Server 환경으로 이동합니다.
  • 시나리오 5 - 오프보딩: 기본 사서함이 온-프레미스 Exchange Server 환경에 있고 보관 사서함이 Exchange Online에 있습니다. 이 시나리오는 다음 작업 중 하나를 수행할 때 발생할 수 있습니다.
    • 기본 사서함을 오프보딩합니다. 그러나 보관 사서함은 Exchange Online에 남겨 둡니다.
    • 기본 사서함과 보관 사서함은 모두 온-프레미스 Exchange Server 환경에 있습니다. 그러나 보관 사서함만 온보딩합니다.

    참고 항목

    유일하게 지원되는 보관 분할 시나리오는 Exchange Online의 기본 사서함 온-프레미스 및 보관 사서함입니다.

원인

이 문제는 사서함이 온-프레미스 Exchange Server 환경과 Exchange Online 간에 마이그레이션되는 경우에 발생합니다.

다음 Windows PowerShell cmdlet을 사용하여 보관 속성을 보는 경우 보관 상태가 활성 상태임을 알 수 있습니다. 그러나 대부분의 보관 정보가 누락되었습니다.

Get-Mailbox alias |fl Name, Archive*

참고 항목

온-프레미스 Exchange 관리 셸 또는 Exchange Online PowerShell을 사용하여 cmdlet을 실행할 수 있습니다. Exchange Online PowerShell 을 사용하는 방법에 대한 자세한 내용은 Windows PowerShell을 서비스에 연결하세요.

cmdlet을 실행하면 결과는 다음과 유사합니다.

Name : jsmith
ArchiveDatabase :
ArchiveGuid : 00000000-0000-0000-0000-000000000000
ArchiveName : {}
ArchiveQuota : 100 GB (107,374,182,400 bytes)
ArchiveWarningQuota : 90 GB (96,636,764,160 bytes)
ArchiveDomain : contoso.mail.onmicrosoft.com
ArchiveStatus : Active

솔루션

이 문제를 해결하려면 시나리오에 적합한 다음 방법 중 하나를 사용합니다.

시나리오 1

시나리오 1의 문제는 다음과 같이 해결되었습니다. Exchange Online으로의 모든 온보딩 마이그레이션이 해결되고 테넌트 관리자가 보관 사서함을 사용하도록 설정할 때까지 ArchiveDomain 속성이 더 이상 설정되지 않습니다.

이 문제가 해결되기 전에 사용자는 Outlook에 보관 사서함이 있다고 보고하고 인증 프롬프트를 받았습니다. 그러나 사용자는 Outlook Web App에서 동일한 보관 사서함을 볼 수 없습니다. (Microsoft는 사용자가 액세스할 수 있는 진정한 보관 사서함이 아니기 때문에 보관함을 '고스트 아카이브'라고 합니다.

시나리오 2

시나리오 2의 문제는 다음과 같이 해결되었습니다. 사서함 이동을 담당하는 MRS 구성 요소는 이제 Exchange Online 보관 사서함이 있는 경우에 올바르게 영향을 줍니다. 따라서 사용자는 오류 없이 Outlook 또는 Outlook Web App에서 보관 사서함에 올바르게 액세스할 수 있습니다. 사용자가 조치할 필요는 없습니다.

시나리오 3

시나리오 3의 두 변형에서의 문제는 다음과 같이 해결됩니다. Exchange Online의 MRS는 ArchiveDomain 속성의 값을 온-프레미스 도메인으로 설정합니다. 따라서 사용자는 오류 없이 Outlook 또는 Outlook Web App에서 보관 사서함에 올바르게 액세스할 수 있습니다. 사용자가 조치할 필요는 없습니다.

시나리오 4

시나리오 4의 문제는 다음과 같이 해결되었습니다. 이 시나리오에서는 Exchange Online의 MRS가 ArchiveDomain 속성의 값을 온-프레미스 도메인으로 설정합니다. 따라서 보관 사서함을 사용하도록 설정하지 않은 경우에도 Outlook에서 보관 사서함이 있는 것을 볼 수 있습니다. 이 보관 파일은 시나리오 1의 '해결' 섹션에 언급된 '고스트 아카이브'과 유사합니다. 그러나 보관을 수행하려면 온-프레미스 Exchange Server 환경의 Exchange 관리자가 '시나리오 5 해결' 섹션에서 제공하는 스크립트를 실행해야 합니다. Microsoft는 이 시나리오를 해결하기 위해 업데이트를 배포했습니다. 따라서 향후 오프보딩은 영향을 받지 않습니다.

Exchange Online에서 오프보딩 마이그레이션을 수행할 때 영향을 받는지 여부를 확인하려면 검색 모드에서 '시나리오 5의 해결' 섹션에 제공된 스크립트를 실행합니다.

시나리오 5

이 시나리오에서는 ArchiveDomain 속성 값이 온-프레미스 도메인으로 설정됩니다. 따라서 Outlook에서 보관 사서함을 찾아서 열 수 없습니다.

시나리오 4 및 5를 해결하기 위해 Microsoft는 사서함을 Exchange Online에서 온-프레미스 Exchange Server 환경으로 다시 이동하는 경우 필요한 특성을 자동으로 변경하는 데 도움이 되는 다음 스크립트를 제공합니다. 스크립트를 실행하려면 다음 단계를 수행합니다.

  1. 메모장을 시작합니다.
  2. 다음 스크립트를 복사하여 메모장에 붙여넣습니다.
#-------------------------------------------------------------------------------
#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# PLEASE NOTE:
# Microsoft Corporation (or based on where you live, one of its affiliates)
# licenses this supplement to you. You may use it with each validly licensed
# copy of Microsoft Online Services Migration Tools software (the "software").
# You may not use the supplement if you do not have a license for the software.
# The license terms for the software apply to your use of this supplement.
# Microsoft may provide support services for the supplement as described at
# http://www.support.microsoft.com/common/international.aspx.
#
#-------------------------------------------------------------------------------
#
# PowerShell Source Code
#
param([Parameter(Mandatory = $false)]
[string]$TenantCloudDomain,
[Parameter(Mandatory = $false)]
[string]$Domain,
[Parameter(Mandatory = $false)]
[Switch]$Fix,
[Parameter(Mandatory = $false)]
[Switch]$FindAllUsersInForest
)
function GetNameFromDN([string]$dn)
{
if ($dn.Length -eq 0) { return $null; }
return ($dn -split ",")[0].Replace("CN=", "")
}
Import-Module ActiveDirectory
If ($TenantCloudDomain.Length -eq 0) {
$ldapQuery = "(&(objectClass=user)(msExchArchiveAddress=*))"
} else {
$ldapQuery = "(&(objectClass=user)(msExchArchiveAddress=*)(!(&(msExchArchiveGuid=*)(!(msExchArchiveDatabaseLink=*))(msExchArchiveAddress=$TenantCloudDomain))))"
}
if ($Domain.Length -eq 0) {
# default domain to computer's domain
$computer = Get-WmiObject -Class Win32_ComputerSystem
$Domain = $computer.Domain
}
if ($FindAllUsersInForest -and $Fix) {
throw "You cannot specify -FindAllUsersInForest when running in -Fix mode, only one domain can be cleaned up at a time."
}
Write-Host "Looking for objects to clean up in ${Domain}: ${ldapQuery}"
$propertiesToLoad = @("msExchMailboxGuid","homeMDB","msExchArchiveGuid","msExchArchiveDatabaseLink","msExchArchiveAddress")
$tsStart = [DateTime](Get-Date)
if ($FindAllUsersInForest) {
$m = Get-ADObject -Server "${Domain}:3268" -SearchBase "" -LDAPFilter $ldapQuery -ResultSetSize $null -Properties $propertiesToLoad
} else {
$m = Get-ADObject -Server $Domain -LDAPFilter $ldapQuery -ResultSetSize $null -Properties $propertiesToLoad
}
$elapsed = [DateTime](Get-Date) - $tsStart
if ($m -eq $null) {
Write-Host "No objects need to be cleaned up."
return
}
$cleanedCount = 0
$failedCount = 0
$filename = $("~\ArchiveDomainCleanup_{0:yyyymmdd_HHmmss}.csv" -f (Get-Date))
# Run cleanup and output data to CSV file
Write-Host "Writing output to $filename..."
try {
$m | %{
$success = $true
if ($Fix) {
$prevError = $error[0]
Set-ADObject -Identity $_ -Server $Domain -Clear "msExchArchiveAddress"
if ($error[0] -ne $prevError) {
$success = $false
Write-Host "x" -NoNewLine
} else {
Write-Host "." -NoNewLine
}
}
if ($success) {
$cleanedCount++
# object was cleaned up successfully, let's append it to output CSV.
$mm = $_ | Select ObjectGuid,DistinguishedName
# Morph guid values from binary blob to proper guid
$mbxGuid = [Guid]$_.msExchMailboxGuid
if ($_.msExchArchiveGuid -ne $null) {
$archiveGuid = [Guid]$_.msExchArchiveGuid
} else {
$archiveGuid = $null
}
Add-Member -InputObject $mm -MemberType NoteProperty -Name CleanedArchiveDomain -Value $($_.msExchArchiveAddress)
Add-Member -InputObject $mm -MemberType NoteProperty -Name ExchangeGuid -Value $mbxGuid
Add-Member -InputObject $mm -MemberType NoteProperty -Name Database -Value $(GetNameFromDN $_.homeMDB)
Add-Member -InputObject $mm -MemberType NoteProperty -Name ArchiveGuid -Value $archiveGuid
Add-Member -InputObject $mm -MemberType NoteProperty -Name ArchiveDatabase -Value $(GetNameFromDN $_.msExchArchiveDatabaseLink)
$mm
} else {
$failedCount++
}
} | Export-CSV $filename -NoTypeInformatio
}
finally {
if ($Fix) {
Write-Host ""
Write-Host "Cleaned up $cleanedCount recipients."
if ($failedCount -gt 0) {
Write-Warning "Failed to update $failedCount recipients."
}
} else {
Write-Host "Discovered $cleanedCount recipients."
}
}
  1. 파일 메뉴에서 저장을 클릭합니다.
  2. 다른 이름으로 저장 입력 상자에서 모든 파일(.)을 클릭합니다.
  3. 파일 이름 상자에서 typeCleanup-ArchiveDomain.ps1을 입력한 다음 저장을 클릭합니다.
  4. Cleanup-ArchiveDomain.ps1 파일을 저장한 디렉터리를 찾은 다음 다음 매개 변수와 함께 스크립트를 실행합니다.
Cleanup-ArchiveDomain.ps1 [-TenantCloudDomain serviceDomain] [-Domain domain] [-Fix] [-FindAllUsersInForest]

참고 항목

  • 테넌트가 클라우드 보관 기능을 사용하는 경우에만 TenantCloudDomain 매개 변수를 지정해야 합니다. 매개 변수 값은 테넌트가 contoso.com 같은 클라우드 보관에 액세스하는 데 사용하는 DNS 도메인 이름이어야 합니다.
  • 도메인 매개 변수는 현재 컴퓨터의 도메인이 아닌 도메인에서 정리 기능을 실행하는 데 사용됩니다.
  • 수정 스위치는 실제 정리 기능을 트리거합니다. 스위치의 기본 함수('스캔 모드'라고도 함)는 사용자를 찾은 다음 CSV 파일에 출력하는 것입니다.
  • TheFindAllUsersInForest 스위치는 글로벌 카탈로그를 검색하고 모든 도메인에서 로컬 포리스트에서 영향을 받는 모든 사용자를 찾습니다. 그러나 이 스위치는 수정 스위치와 결합할 수 없습니다. 한 번에 하나의 도메인에서만 사용자를 수정할 수 있습니다.

추가 정보

아직 해결되지 않았습니까? Microsoft 커뮤니티로 이동하세요.