Microsoft 365 또는 Office 365 조직에서 다른 조직으로 사서함을 마이그레이션하는 방법

참고

현재, https://aka.ms/CrossTenantMailboxMigration에 있는 네이티프 크로스 테넌트 사서함 마이그레이션의 공개 미리 보기를 가지고 있습니다.

이 문서에서는 비즈니스 합병 시나리오에서 사서함 및 서비스 설정을 Microsoft 365 또는 Office 365 organization 다른 Microsoft 365 또는 Office 365 organization 마이그레이션하는 방법을 설명합니다. 마이그레이션할 사용자가 500명 이상이거나 마이그레이션할 SharePoint 데이터가 많은 경우 Microsoft 솔루션 공급자와 협력하는 것이 좋습니다.

이 문서의 시나리오는 두 개의 개별 Office 365 조직을 사용하는 두 개의 가상 회사(Contoso.com 및 Fabrikam.com)를 기반으로 합니다. Contoso는 Fabrikam을 구입했으며 Fabrikam 사용자 및 데이터를 contoso.com Office 365 organization 이동합니다.

도메인 테넌트 1(대상) 테넌트 2(소스)
사용자 지정 전자 메일 도메인: contoso.com fabrikam.com
Office 365 초기 도메인: contoso.onmicrosoft.com fabrikam.onmicrosoft.com

시나리오: 타사 마이그레이션 도구를 사용하여 마이그레이션

이 시나리오에서는 Fabrikam Company의 사용자, 그룹 및 기타 개체가 Office 365 수동으로 만들어지거나, 스크립트를 통해 포털로 가져오거나, AD DS(Active Directory Domain Services) 통합을 통해 Contoso Active Directory에 병합된다고 가정합니다.

완료되면 모든 Fabrikam 계정이 Contoso.com Office 365 organization 존재하며 모두 UPN에 사용합니다@fabrikam.com. 단순성과 간결성을 위해 최종 주소 지정 구성표를 선택했지만, 요구 사항에 따라 수정할 수 있습니다.

Microsoft 365 또는 Office 365 조직에서 다른 조직으로 사서함을 데이터를 이동하는 방법.

계획: 마이그레이션 2주 전

타사 마이그레이션 도구를 사용하여 사용자를 마이그레이션하는 경우 마이그레이션에 필요한 라이선스를 구입합니다.

클라이언트 고려 사항

Outlook 2010 이상의 경우, Outlook 사용자 프로필을 제거 하고 이를 다시 만들면 됩니다.

Outlook 2007 및 Outlook 2010의 경우 클라이언트를 다시 시작하면 자동 검색이 클라이언트를 구성하고 를 다시 빌드합니다. OST 파일.

비즈니스용 Skype 클라이언트의 경우 마이그레이션이 완료되면 프로세스가 새 프로필을 만들기 때문에 연락처를 추가해야 합니다.

테넌트 준비 및 라이선싱

원본 테넌트는 사용자 및 데이터를 마이그레이션하는 Fabrikam Office 365 organization. 대상 테넌트는 마이그레이션할 Contoso Office 365 organization.

  1. 원본 테넌트에서 마이그레이션할 모든 사서함을 수용할 수 있도록 대상 Office 365 조직의 라이선스를 늘립니다.

  2. Office 365에서 다른 Office 365로 마이그레이션하는 데 사용할 원본 및 대상 테넌트에서 관리자 계정을 만듭니다. 일부 마이그레이션 도구는 데이터 처리량을 최적화하기 위해 원본 테넌트에 둘 이상의 관리자 계정이 필요할 수 있습니다.

대상 테넌트의 대화방, 리소스, 메일 그룹 및 사용자 개체 만들기

대상(Contoso) 테넌트에서 리소스를 만들려면 다음을 수행합니다.

  1. Azure AD Connect 도구를 사용하여 Contoso AD DS(Active Directory 도메인 서비스)의 모든 개체를 동기화하는 경우, 통합을 통해 대상 테넌트(Contoso) AD DS에 원본(Fabrikam) 테넌트 AD DS의 개체를 만들어야 합니다.

    1. AD DS 통합은 다양한 AD DS 도구를 사용하여 완료할 수 있습니다. 개체 이동을 마이그레이션 프로젝트보다 먼저 완료할 수 있도록 통합 시 이동되는 개체 수에 따라 추가 시간과 계획이 필요할 수 있습니다.

    2. 디렉터리 동기화를 통해 새로운 사용자와 그룹이 모두 Contoso.com 대상 테넌트에 동기화되었는지 확인합니다. Fabrikam 도메인이 현재 이동되지 않았으므로 개체가 새 테넌트에서 와 같이 user@contoso.onmicrosoft.com 표시되어야 합니다. 도메인 이동이 완료된 후 사용자 및 그룹에 대한 기본 메일 주소 업데이트 @fabrikam.com 할 수 있습니다.

  2. 디렉터리 동기화를 사용하지 않거나 원본 테넌트의 Microsoft 365 관리 센터 룸, 리소스, 그룹 또는 사용자가 관리되는 경우 대상 테넌트에서 이러한 개체를 만들어야 합니다. 개체는 Microsoft 365 관리 센터에서 수동으로 만들 수 있으며 개체 수가 많을 경우에는 Microsoft 365 관리 센터의 일괄 추가 기능이나 Windows PowerShell을 사용하여 CSV 파일을 가져올 수 있습니다.

최종 사용자 통신

조직의 최종 사용자에게 마이그레이션을 알리려면

  1. 통신 계획을 만들고 향후 마이그레이션 및 서비스 변경을 사용자에게 알리기 시작합니다.

  2. 마이그레이션 후에 모든 Outlook 클라이언트에서 자동 완성 목록(애칭 캐시라고도 함)을 지워야 합니다. 나중에 Outlook 2010의 자동 완성 목록에서 모든 받는 사람을 제거하려면 자동 완성을 사용하여 받는 사람, 참조 및 숨은 참조 상자에 추천되는 받는 사람 관리를 참조하십시오.

  3. 마이그레이션 후 문제가 발생할 경우 사용자가 새 로그온 정보를 사용하여 웹용 Outlook(이전의 Outlook Web App)에 연결하는 방법을 인식하도록 합니다.

준비 및 마이그레이션 이전 작업: 마이그레이션 3일 전

도메인 준비

마이그레이션을 위해 도메인을 준비하려면 다음 단계를 완료하세요.

  1. Fabrikam.com 전자 메일 도메인의 대상(Contoso) 테넌트에서 도메인 확인 프로세스를 시작합니다.

  2. contoso.com Microsoft 365 관리 센터에서 Fabrikam.com 도메인을 추가하고 확인을 위해 DNS(Domain Name System)에서 TXT 레코드를 만듭니다.

    참고

    도메인이 다른 테넌트에서 여전히 사용 중이므로 확인은 실패합니다.

    이제 이 단계를 수행하면 DNS 레코드 시간이 최대 72시간이 걸릴 수 있으므로 전파할 수 있습니다. 최종 유효성 검사는 프로세스의 뒷부분에서 발생합니다.

마이그레이션 예약

마이그레이션을 예약하려면

  1. 마이그레이션하려는 사용자 사서함의 마스터 목록을 만듭니다.

  2. 사용 중인 타사 마이그레이션 도구에 대한 사서함 매핑 .CSV 파일을 만듭니다. 이 매핑 파일은 마이그레이션이 진행될 때 마이그레이션 도구에서 소스 사서함과 일치하는 대상 테넌트 사서함을 찾는 데 사용됩니다. 사용자 지정 전자 메일 도메인이 지속적으로 변경되므로 원본 계정을 매핑하기 위해 *.onmicrosoft.com '초기' 도메인을 사용하는 것이 좋습니다.

Office 365의 한 조직에서 다른 조직으로 사서함 데이터를 마이그레이션하는 데 사용되는 CSV 파일.

MX 레코드(메일 교환 레코드) TTL(Time to Live) 테스트

다음으로, TTL 테스트를 예약합니다.

  1. DNS에서 전송하려는 기본 전자 메일 도메인에 대한 MX 레코드의 TTL 값을 작은 숫자(예: 5분)로 변경합니다. TTL을 5분으로 낮출 수 없는 경우 가장 낮은 값을 기록해 둡니다. 예를 들어 가장 낮은 값이 4시간인 경우 마이그레이션을 시작하기 4시간 전에 MX 레코드를 변경해야 합니다.

  2. MX Lookup을 사용하여 MX 및 DNS 변경 내용을 확인할 수 있습니다.

소스 테넌트에서 디렉터리 동기화 사용 안 함

원본 테넌트 Microsoft 365 관리 센터에서, 디렉터리 동기화를 사용하지 않도록 설정합니다. 이 프로세스는 24시간 이상 걸릴 수 있으므로 마이그레이션보다 먼저 수행해야 합니다. 포털에서 이 기능을 사용하지 않도록 설정하면 소스 테넌트 AD DS에 대한 변경 내용이 더 이상 Office 365 테넌트와 동기화되지 않습니다. 따라서 기존 사용자 및 그룹 프로비저닝 프로세스를 조정해야 합니다.

마이그레이션: 마이그레이션 당일

다음은 마이그레이션을 수행하는 날에 해야 하는 단계입니다.

MX 레코드 변경 – 인바운드 메일 흐름 중지

기본 MX 레코드를 Office 365 연결할 수 없는 도메인(예: "unreachable.example.com")으로 변경합니다. 새 메일의 전송을 시도하는 인터넷 메일 서버가 메일을 대기열에 넣고 24시간 동안 재전송을 시도합니다. 이 방법을 사용할 경우 메일 전송을 시도하는 서버에 따라 일부 전자 메일이 NDR(배달 못 함 보고서)를 반환할 수 있습니다. 이 문제가 발생하면 MX 레코드 백업 서비스를 사용합니다. 며칠 또는 몇 주 동안 전자 메일을 큐에 대기하는 타사 서비스가 많이 있습니다. 마이그레이션이 완료되면 이러한 서비스는 대기 중인 메일을 새 Office 365 organization 배달합니다.

TTL이 짧은(예: 5분) 경우에는 중단을 줄이기 위해 이 단계를 업무 시간 이후에 완료할 수 있습니다. TTL이 큰 경우에는 TTL이 만료될 수 있도록 미리 MX 레코드를 변경해야 합니다. 예를 들어 오후 6시에 마이그레이션을 시작하려는 경우 오후 2시 전에 4시간 TTL을 변경해야 합니다.

필요한 경우 MX 및 DNS 변경 내용을 확인합니다. Nslookup 또는 MxToolbox 등의 서비스를 사용하여 MX 및 DNS 변경 내용을 확인할 수 있습니다.

소스 테넌트 준비

도메인을 대상 테넌트로 이동하기 전에 원본 테넌트의 모든 개체에서 기본 전자 메일 도메인(fabrikam.com)을 제거해야 합니다.

  1. 사용자의 도메인을 SharePoint Online 공개 웹 사이트에도 설정한 경우에는 먼저 해당 웹 사이트의 URL을 다시 초기 도메인으로 설정해야만 해당 도메인을 제거할 수 있습니다.

  2. Lync 관리 포털을 사용하여 원본 테넌트에 있는 사용자의 모든 Lync 라이선스를 제거합니다. 이렇게 하면 Fabrikam.com 연결된 Lync Sip 주소가 제거됩니다.

  3. Office 365 원본 사서함의 기본 전자 메일 주소를 초기 도메인(fabrikam.onmicrosoft.com)으로 재설정합니다.

  4. 모든 배포 Lists, 룸 및 리소스의 기본 전자 메일 주소를 원본 테넌트에서 초기 도메인(fabrikam.onmicrosoft.com)으로 다시 설정합니다.

  5. 를 계속 사용하는 @fabrikam.com사용자 개체에서 모든 보조 전자 메일(프록시 주소)을 제거합니다.

  6. 도메인 포털에서 오른쪽 위 모서리에 있는 회사 이름 클릭하여 원본 테넌트의 기본 도메인을 fabrikam.onmicrosoft.com 라우팅 도메인으로 설정합니다.

  7. Windows PowerShell 명령 Get-MsolUser -DomainName Fabrikam.com을 사용하여 여전히 도메인을 사용하고 있어 제거할 수 없는 모든 개체의 목록을 검색합니다.

  8. 일반적인 도메인 제거 문제에 대한 자세한 내용은 Office 365에서 도메인을 제거할 때 오류 메시지가 표시되는 경우를 참조하세요.

대상 테넌트 준비

contoso.com 테넌트에서 Fabrikam.com 도메인 확인을 완료합니다. 이전 테넌트에서 도메인을 제거한 후 1시간 가량 기다려야 할 수 있습니다.

  1. 선택 사항으로 자동 검색 CNAME(내부/외부)을 구성합니다.

  2. AD FS를 사용하는 경우 AD FS에 대한 대상 테넌트에서 새 도메인을 구성합니다.

  3. Begin mailbox activation in the contoso.com tenant > Assign licenses to all of the new user accounts.

  4. 새 사용자의 기본 주소로 Fabrikam.com 전자 메일 도메인을 설정합니다. 이 작업은 포털에서 라이선스가 없는 여러 사용자를 선택/편집하거나 Windows PowerShell을 사용하여 완료할 수 있습니다.

  5. 암호 해시 동기화 기능, 통과 인증 또는 AD FS를 사용하지 않는 경우 대상(Contoso) 테넌트의 모든 사서함에서 암호를 설정합니다. 일반 암호를 사용하지 않는 경우 사용자에게 새 암호를 알립니다.

  6. 사서함에 라이선스를 할당하고 활성화했으면 메일 라우팅을 전환합니다. Fabrikam MX 레코드가 Office 365 대상(Contoso) 테넌트를 가리키도록 합니다. MX TTL이 만료되면 메일이 새 빈 사서함으로 전달되기 시작합니다. MX 백업 서비스를 사용하는 경우 새 사서함으로 전자 메일을 해제할 수 있습니다.

  7. 대상 테넌트에서 새 사서함으로 들어오거나 새 사서함에서 나가는 메일 흐름에 대해 확인 테스트를 수행합니다.

  8. EOP(Exchange Online Protection)를 사용하는 경우: 대상 테넌트에서 원본 테넌트에서 메일 흐름 규칙(전송 규칙이라고도 함), 커넥터, 차단 목록, 허용 목록 등을 다시 만듭니다.

마이그레이션 시작

가동 중지 시간 및 사용자 불편을 최소화하기 위해 최상의 마이그레이션 방법을 결정합니다.

  • 500명 이하 마이그레이션: 메일, 일정, 연락처 데이터를 대상 테넌트 사서함으로 마이그레이션합니다. 가능한 경우 날짜를 기준으로 메일 마이그레이션을 제한합니다(예: 최근 6개월간의 데이터).

  • 500명 이상의 사용자를 위한 마이그레이션: 모든 사용자에 대해 연락처, 일정 및 1주 간의 전자 메일만 마이그레이션하는 다중 패스 방법을 사용한 다음, 성공일 또는 몇 주에 여러 번 패스를 수행하여 사서함에 이전 전자 메일 데이터를 채웁니다.

타사 마이그레이션 도구를 통해 메일 마이그레이션을 시작합니다.

  1. 공급업체에서 제공한 도구를 사용하여 마이그레이션 진행 상황을 모니터링합니다. 마이그레이션 중 경영진과 마이그레이션 팀에 정기적으로 진행 상황 보고서를 보냅니다.

  2. 모든 마이그레이션이 완료된 다음, 선택 사항으로 두 번째 또는 세 번째 마이그레이션을 수행합니다.

마이그레이션이 끝나면 Outlook 2007 및 2010은 각 사용자에 대한 전체 사서함을 동기화하여 각 사서함으로 마이그레이션한 데이터의 양에 따라 상당한 대역폭을 사용합니다. Outlook 2013은 기본적으로 12개월의 데이터만 캐시합니다. 이 설정은 더 많거나 적은 데이터(예: 대역폭 사용량을 밝게 할 수 있는 3개월의 데이터)로 구성할 수 있습니다.

마이그레이션 이후: 정리

사용자는 마이그레이션한 전자 메일 메시지에 회신하고 NDR을 수신할 수 있습니다. Outlook 자동 완성 목록(애칭 캐시라고도 함)을 지워야 합니다. 나중에 Outlook 2010의 자동 완성 목록에서 모든 받는 사람을 제거하려면 자동 완성을 사용하여 받는 사람, 참조 및 숨은 참조 상자에 추천되는 받는 사람 관리를 참조하십시오. 또는 이전 레거시 DN를 x.500 프록시 주소로 모든 사용자에게 추가합니다.

샘플 Windows PowerShell 스크립트

다음 예제 Windows PowerShell 스크립트를 고유한 스크립트를 만드는 시작점으로 사용합니다.

Office 365 일괄 암호 재설정

  1. password.csv라는 CSV 파일을 만듭니다.

  2. 이 파일에 "upn" 및 "newpassword" 열을 삽입합니다(예: johnsmith@contoso.com, Password1).

  3. Windows PowerShell 명령을 사용합니다.

    Import-Csv password.csv|%{Set-MsolUserPassword -userPrincipalName $_.upn -NewPassword $_.newpassword -ForceChangePassword $false}
    

특정 프록시 주소를 사용하는 모든 Office 365 계정을 CSV 파일로 복사

##########################################################################
# Script: showproxies.ps1
# Copies all accounts in Microsoft 365 that contain/don't contain a specific
# proxyaddress to a .CSV file (addresses.csv)
#
# Change the following variable to the proxy address string you want to find:
# $proxyaddr = "onmicrosoft.com"
################################################################################
$proxyaddr = "onmicrosoft.com"
# Create an object to hold the results
$addresses = @()
# Get every mailbox in the Exchange Organization
$Mailboxes = Get-Mailbox -ResultSize Unlimited
# Loop through the mailboxes
ForEach ($mbx in $Mailboxes) {
    # Loop through every address assigned to the mailbox
    Foreach ($address in $mbx.EmailAddresses) {
       # If it contains XXX,  Record it
        if ($address.ToString().ToLower().contains($proxyaddr)) {
            # This is an email address. Add it to the list
            $obj = "" | Select-Object Alias,EmailAddress
            $obj.Alias = $mbx.Alias
            $obj.EmailAddress = $address.ToString() #.SubString(10)
            $addresses += $obj
      }
    }
}
# Export the final object to a csv in the working directory

$addresses | Export-Csv addresses.csv -NoTypeInformation
# Open the csv with the default handler
Invoke-Item addresses.csv

##### END OF SHOWPROXIES.PS1

Microsoft 365에서 대화방 사서함을 대량으로 만듭니다.

참고

  • 다음 스크립트를 실행하기 전에 Exchange Online PowerShell 모듈을 설치해야 합니다. 지침은 Exchange Online PowerShell 모듈 설치 및 유지 관리를 참조하세요. 모듈은 최신 인증을 사용합니다.

  • 일반적으로 조직이 Microsoft 365 또는 Microsoft 365 GCC인 경우 스크립트를 그대로 사용할 수 있습니다. 조직이 Office 365 독일, Microsoft 365 GCC High 또는 Microsoft 365 DoD인 경우 스크립트에서 Connect-ExchangeOnline줄을 편집해야 합니다. 특히 ExchangeEnvironmentName 매개 변수와 조직 유형에 적절한 값을 사용해야 합니다. 자세한 내용은 Exchange Online PowerShell에 연결의 예를 참조하세요.

################################################################################
# Script: create-rooms.ps1
# Description:*** RUN THIS SCRIPT FROM A WINDOWS POWERSHELL SESSION ***
# This script creates room mailboxes in Microsoft 365.
# Syntax:Create-Rooms.ps1 -InputFile "file name.csv"
#
# Dependencies: Input file should contain 3 columns: RoomName, RoomSMTPAddress, RoomCapacity
#
################################################################################
param( $inputFile )
Function Usage
{
$strScriptFileName = ($MyInvocation.ScriptName).substring(($MyInvocation.ScriptName).lastindexofany("\") + 1).ToString()
@"
NAME:
$strScriptFileName
EXAMPLE:
C:\PS> .\$strScriptFileName -InputFile `"file name.csv`"
"@
}
If (-not $InputFile) {Usage;Exit}

If ($ExchRemoteCmdlets.State -ne "Opened")
{
Write-Host
Write-Host Connecting to Exchange Online PowerShell...
Write-Host
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
$Global:ExchRemoteCmdlets = Get-PSSession -Name ExchangeOnlineInternalSession*
}
# Import the CSV file in Exchange Online
$csv = Import-CSV $inputfile
# Create Rooms contained in the CSV file in Exchange Online
$csv | foreach-object{
New-Mailbox -Name $_.RoomName -Room -PrimarySmtpAddress $_.RoomSMTPAddress -ResourceCapacity $_.RoomCapacity
}
##### END OF CREATE-ROOMS.PS1

사서함에서 보조 전자 메일 주소 일괄 제거

참고

  • 다음 스크립트를 실행하기 전에 Exchange Online PowerShell 모듈을 설치해야 합니다. 지침은 Exchange Online PowerShell 모듈 설치 및 유지 관리를 참조하세요. 모듈은 최신 인증을 사용합니다.

  • 일반적으로 조직이 Microsoft 365 또는 Microsoft 365 GCC인 경우 스크립트를 그대로 사용할 수 있습니다. 조직이 Office 365 독일, Microsoft 365 GCC High 또는 Microsoft 365 DoD인 경우 스크립트에서 Connect-ExchangeOnline줄을 편집해야 합니다. 특히 ExchangeEnvironmentName 매개 변수와 조직 유형에 적절한 값을 사용해야 합니다. 자세한 내용은 Exchange Online PowerShell에 연결의 예를 참조하세요.

##########################################################################
#      Script:  remove-proxy.ps1
# Description:*** RUN THIS SCRIPT FROM A WINDOWS POWERSHELL SESSION ***
# This script will remove a secondary email address from many users
#
# Syntax:remove-proxy.ps1 -InputFile "filename.csv"
#
# Dependencies:Input file should contain 2 columns: Username, Emailsuffix
#               Example:  Username=tim, Emailsuffix=fabrikam.com
# Script will remove the address tim@fabrikam.com from the mailbox for Tim.
# NOTE: Address must be secondary; it will not remove primary email address.
#
################################################################################
param( $inputFile )
Function Usage
{
$strScriptFileName = ($MyInvocation.ScriptName).substring(($MyInvocation.ScriptName).lastindexofany
("\") + 1).ToString()
@"
NAME:
$strScriptFileName
EXAMPLE:
C:\PS> .\$strScriptFileName -inputfile `"file name.csv`"
"@
}
If (-not $inputFile) {Usage;Exit}

If ($ExchRemoteCmdlets.State -ne "Opened")
{
Write-Host
Write-Host Connecting to Exchange Online PowerShell...
Write-Host
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
$Global:ExchRemoteCmdlets = Get-PSSession -Name ExchangeOnlineInternalSession*
}
# Import the CSV file and change primary smtp address in Exchange Online
$csv = Import-CSV $inputfile
$csv | foreach-object{
# Set variable for email address to remove in Exchange Online
$removeaddr = $_.username + "@" + $_.emailsuffix
Write-Host ("Processing User: " + $_.UserName +" - Removing " + $removeaddr)
Set-Mailbox $_.Username -EmailAddresses @{Remove=$removeaddr}
}
##### END OF REMOVE-PROXY.PS1