PowerShell cmdlet을 사용하여 SharePoint에 온-프레미스 콘텐츠 업로드

참고

SPMT(SharePoint 마이그레이션 도구)는 마이그레이션 프로세스를 단순화하는 데 도움이 됩니다. SPMT는 SharePoint 서버 팀 사이트 또는 네트워크 파일 공유를 Microsoft 365로 마이그레이션을 안내하는 마법사 같은 환경을 제공합니다. 모든 Microsoft 365 사용자: SPMT 다운로드에서 사용할 수 있습니다.

중요

현재 중국의 21Vianet에서 운영하는 Office 365 사용자는 SharePoint 마이그레이션 도구를 사용할 수 없습니다.

이 문서는 SharePoint 마이그레이션 PowerShell cmdlet을 사용하여 온-프레미스 파일 공유에서 Microsoft 365로 콘텐츠를 마이그레이션하는 방법을 설명합니다.

SharePoint 마이그레이션 PowerShell cmdlet은 파일 공유에서 온-프레미스 콘텐츠를 이동하도록 설계되었습니다. 최소한의 CSOM 호출이 필요하며 Azure 임시 Blob Storage를 사용하여 대량의 데이터 마이그레이션을 처리합니다.

필수 구성 요소

  • 지원되는 운영 체제:

    • Windows 7 Service Pack 1
    • Windows 8
    • Windows Server 2008 R2 SP1
    • Windows Server 2008 Service Pack 2
    • Windows Server 2012, Windows Server 2012 R2
  • Windows PowerShell 4.0

참고

사용 권한: 대상으로 하는 사이트에서 사이트 모음 관리자여야 합니다.

시작하기 전에

1단계: SharePoint Online 관리 셸 설치

  1. 이전 버전의 SharePoint Online 관리 셸을 모두 제거합니다.

  2. SharePoint Online 관리 셸 MSI를 다운로드하여 설치합니다.

  3. SharePoint Online 관리 셸을 열고 관리자 권한으로 실행을 선택합니다.

2단계: 작업 디렉터리 설정

마이그레이션을 시작하기 전에 먼저 두 개의 빈 폴더를 만들어 작업 디렉터리를 설정해야 합니다. 이러한 폴더는 XML만 포함하므로 디스크 공간이 많이 필요하지 않습니다.

  1. 임시 패키지 폴더를 만듭니다.

  2. 최종 패키지 폴더를 만듭니다.

3단계: 위치 및 자격 증명 확인

자격 증명과 소스 파일, 대상 파일 및 웹의 위치를 식별합니다.

로컬 컴퓨터에서 SharePoint Online 관리 셸을 엽니다. 다음 명령을 실행하되 값을 삽입합니다.

$cred = (Get-Credential admin@contoso.com)
$sourceFiles = '\\fileshare\users\charles'
$sourcePackage = 'C:\migration\CharlesDocumentsPackage_source'
$targetPackage = 'C:\migration\CharlesDocumentsPackage_target'
$targetWeb = 'https://contoso-my.sharepoint.com/personal/charles_contoso_com'
$targetDocLib = 'Documents'

New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters

4단계: 온-프레미스 파일 공유에서 새 콘텐츠 패키지 만들기

이 단계에서는 파일 공유에서 새 마이그레이션 패키지를 만듭니다. 파일 공유 New-SPOMigrationPackage 에서 콘텐츠 패키지를 만들려면 명령은 원본 경로가 대상으로 하는 콘텐츠 목록을 읽고 마이그레이션을 수행할 XML을 생성합니다.

다음 매개 변수는 선택 사항으로 표시되지 않은 경우 필수입니다.

  • SourcefilesPath: 마이그레이션하려는 콘텐츠를 가리킵니다.

  • OutputPackagePath: 임시 폴더를 가리킵니다.

  • TargetWebUrl: 대상 웹을 가리킵니다.

  • TargetDocumentLibraryPath: 웹 내 문서 라이브러리를 가리킵니다.

  • IgnoreHidden: 숨겨진 파일을 건너뜁니다(선택 사항).

  • ReplaceInvalidCharacters: 가능한 경우 잘못된 문자를 수정합니다(선택 사항).

예:

다음 예에서는 파일 공유에서 새 패키지를 생성하는 방법을 보여 줍니다. 숨김 파일을 무시하고 파일/폴더 이름에서 지원되지 않는 문자를 바꿉니다.

    New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters`

5단계: 대상 사이트에 맞게 콘텐츠 패키지 변환

ConvertTo-SPOMigrationTargetedPackage 명령을 사용하여 임시 폴더에 생성된 SML을 변환합니다. 새로운 대상 마이그레이션 패키지 메타데이터 파일 집합을 대상 디렉터리에 저장합니다. 최종 패키지입니다.

참고

대상 사이트 모음 관리자 자격 증명은 데이터 사이트 모음에 연결할 데이터를 수집하는 데 사용됩니다.

6가지 필수 매개 변수를 입력해야 합니다. 다른 매개 변수는 선택 사항입니다.

  • ParallelImport: 병렬 스레드를 사용하여 성능을 최적화하도록 도구를 지시합니다.

  • SourceFiles: 패키지의 원본 콘텐츠 파일이 있는 디렉터리 위치를 가리킵니다.

  • SourcePackagePath: 임시 패키지 폴더를 가리킵니다.

  • OutputPackagePath: 최종 패키지 폴더를 가리킵니다.

  • 자격 증명: 대상 사이트에 대해 관리자 권한이 있는 SharePoint 자격 증명입니다.

  • TargetWebUrl: 대상 웹의 URL입니다.

  • TargetDocumentLibraryPath: 대상 라이브러리에 대한 경로입니다.

예제:

이 예제에서는 대상 사이트 모음에서 데이터를 조회하여 패키지를 대상 패키지로 변환하는 방법을 보여 줍니다. -ParallelImport 매개 변수를 사용하여 파일 공유 마이그레이션 성능을 향상시킵니다.

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -ParallelImport -SourceFilesPath $sourceFiles -SourcePackagePath $sourcePackage -OutputPackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib`

6단계: 가져오려는 콘텐츠 제출

이 단계에서는 Invoke-SPOMigrationEncryptUploadSubmit 명령으로 대상 사이트 모음에 새 마이그레이션 작업을 만들고 해당 JobID를 나타내는 GUID를 반환합니다. 이 명령은 암호화된 원본 파일 및 매니페스트를 임시 Azure Blob Storage에 작업별로 업로드합니다.

4가지 필수 매개 변수를 입력해야 합니다. 다른 항목은 선택 사항입니다.

  • TargetwebURL: 대상 웹을 가키립니다.

  • SourceFilesPath: 가져올 파일을 가리킵니다.

  • SourcePackagePath: 가져오려는 파일의 최종 매니페스트를 가리킵니다.

  • 자격 증명: 대상 사이트에서 사이트 모음 관리자 권한을 갖는 SharePoint 자격 증명입니다.

예제 1:

이 예제에서는 패키지 데이터를 제출하여 새 마이그레이션 작업을 만드는 방법을 보여 줍니다.

 $job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb

예제 2:

이 예제에서는 패키지 데이터를 제출하여 병렬 가져오기를 위한 새 마이그레이션 작업을 만드는 방법을 보여 줍니다.

$jobs = $finalPackages | % {Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $_.FilesDirectory.FullName -SourcePackagePath $_.PackageDirectory.FullName -Credentials $cred -TargetWebUrl $targetWeb}

Invoke cmdlet이 제출된 각 작업에 대해 작업의 일부로 다음과 같은 속성을 반환합니다.

  • JobId: SPO에 있는 작업의 ID입니다.

  • ReportingQueueUri: 마이그레이션의 실시간 진행 메시지가 저장되는 SharePoint Azure 큐입니다.

  • 암호화: Azure로 콘텐츠가 업로드되는 동안 사용되는 암호화 키와 메서드입니다. 이 키는 큐 메시지의 암호를 해독하고 로그를 가져올 때 필요합니다.

사용자 고유의 Azure Storage 계정을 사용하여 스토리지에 콘텐츠를 업로드하는 경우 Set-SPOMigrationPackageAzureSourceSubmit-SPOMigrationJob을 사용합니다.

중요

Azure Storage를 사용하는 경우 대역폭 요금이 발생할 수 있다는 점에 유의하세요. 요금은 Azure 오퍼 유형 및 마이그레이션 크기에 따라 다릅니다. 일반 가격에 대한 자세한 내용은 대역폭 가격을 참조하세요.

(선택 사항) 7단계: SharePoint 마이그레이션 처리 및 모니터링

작업이 제출되면 Azure 및 SharePoint는 상호 작용하면서 콘텐츠를 가져오고 대상으로 마이그레이션합니다. 이 프로세스는 타이머 작업 기반으로, 선착순으로 큐에 배치됩니다. 이 프로세스로 인해 동일한 사용자가 다른 작업을 대기열에 넣을 수 없습니다.

실행 중인 다른 작업이 없는 경우 1분 정도 지연될 수 있습니다.

작업 상태 확인

작업 상태를 확인하려면 6단계에서 반환된 EncryptionKey를 사용하여 Azure 저장소 계정에 게시된 실시간 업데이트를 확인하세요.

로그 보기

고유한 Azure Storage 계정을 사용하는 경우 Azure Storage에서 매니페스트 컨테이너에서 발생한 모든 작업의 로그를 볼 수 있습니다. Azure에 백업으로 보관하지 않으려는 경우 이 단계에서 해당 컨테이너를 삭제해도 됩니다.

오류 또는 경고가 발생한 경우 .err 또는 .wrn 파일이 매니페스트 컨테이너에 만들어집니다.

6단계에서 Invoke-SPOMigrationEncryptUploadSubmit 에서 만든 임시 Azure Storage를 사용하는 경우 "이벤트" 값 JobLogFileCreate를 사용하여 Azure 큐 메시지의 암호를 해독하여 가져오기 로그 SAS URL을 가져올 수 있습니다. 가져오기 로그 SAS URL을 사용하여 로그 파일을 다운로드하고 6단계에서 반환된 것과 동일한 암호화 키를 사용하여 암호 해독할 수 있습니다.

재사용을 위해 시나리오 스크립팅

다음 예제 스크립트를 사용합니다. 다음은 위치 및 자격 증명 확인에서 새 마이그레이션 작업을 만들기 위해 패키지 데이터를 제출하는 것까지 모든 단계가 포함된 샘플 스크립트입니다.

$userName = "admin@contoso.onmicrosoft.com"
$sourceFiles = "d:\data\documents"
$packagePath = "d:\data\documentPackage"
$spoPackagePath = "d:\data\documentPackageForSPO"
$targetWebUrl = "https://contoso.sharepoint.com/sites/finance"
$targetLibrary = "Documents"
$cred = Get-Credential $userName
  
New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $packagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -IgnoreHidden -ReplaceInvalidCharacters

대상 사이트 모음에서 데이터를 조회하여 패키지를 대상 패키지로 변환

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles -SourcePackagePath $packagePath -OutputPackagePath $spoPackagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -Credentials $cred

마이그레이션 작업을 만들기 위해 패키지 데이터 제출

$job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $spoPackagePath -Credentials $cred -TargetWebUrl $targetWebUrl
  
This sample shows how to get the returned information of a job, which comes in the form of a GUID.
  
```powershell
$job = $jobs[0]
$job.JobId
Guid
----
779c4b3b-ec24-4705-bb58-c38f4329418c

이 샘플에서는 $job.ReportingQueueURi.AbosoluteUri를 가져오는 방법을 보여 줍니다.

# To obtain the $job.ReportingQueueUri.AbsoluteUri
https://spodm1bn1m013pr.queue.core.windows.net/953pq20161005-f84b9e51038b4139a179f973e95a6d6f?sv=2014-02-14&sig=TgoUcrMk1Pz8VzkswQa7owD1n8TvLmCQFZGzyV7WV8M%3D&st=2016-10-04T07%3A00%3A00Z&se=2016-10-26T07%3A00%3A00Z&sp=rap

이 샘플에서는 암호화 키와 샘플 반환을 획득하는 방법을 보여 줍니다.

$job.Encryption
EncryptionKey                                       EncryptionMethod
-----------------------                            ------------------
{34, 228, 244, 194...}                              AES256CBC

중요

모든 메시지는 큐에서 암호화됩니다. ReportingQueue에서 읽어오려는 경우 EncryptionKey가 있어야 합니다.

모범 사례 및 제한 사항

설명 권장 사항
패키지 크기 10-20GB
큰 패키지를 더 작은 패키지로 자동으로 분할하는 -ParallelImport 스위치를 파일 공유 마이그레이션에 사용합니다.
파일 크기
2GB
대상 크기
마이그레이션이 완료될 때까지 대상 사이트에 사용자가 액세스할 수 없습니다.
SharePoint 제한
Microsoft 365용 SharePoint의 서비스 제한 사항

Azure 제한

리소스 기본값/제한
저장소 계정당 TB
500
단일 Blob 컨테이너, 테이블 또는 큐의 최대 크기
500
저장소 계정당 blob 컨테이너, blob, 파일 공유, 테이블, 큐, 엔터티 또는 메시지의 최대 수
유일한 제한은 500TB 저장소 계정 용량입니다.
단일 Blob에 대한 목표 처리량
초당 최대 60MB 또는 초당 최대 500개 요청

Cmdlet 참조는 SharePoint Online용입니다.