Caricare contenuto locale in SharePoint tramite i cmdlet di PowerShell

Nota

Lo strumento di migrazione di SharePoint (SPMT) consente di semplificare il processo di migrazione. SPMT offre un'esperienza simile a una procedura guidata per la migrazione di siti del team di SharePoint Server o condivisioni file di rete a Microsoft 365. È disponibile per tutti gli utenti di Microsoft 365: Scaricare SPMT.

Importante

Lo Strumento di migrazione di SharePoint non è al momento disponibile per gli utenti di Office 365 gestito da 21Vianet in Cina.

Questo articolo illustra come usare i cmdlet di PowerShell per la migrazione di SharePoint per eseguire la migrazione di contenuti da una condivisione file locale a Microsoft 365.

I cmdlet di PowerShell per la migrazione a SharePoint sono progettati per spostare i contenuti locali dalle condivisioni file. Richiedono un numero minimo di chiamate CSOM e usano l’archiviazione BLOB temporanea di Azure per gestire migrazioni di dati di grandi dimensioni.

Prerequisiti

  • Sistemi operativi supportati:

    • 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

Nota

Autorizzazioni: è necessario essere un amministratore della raccolta di siti nel sito di destinazione.

Prima di iniziare

Passaggio 1: Installare SharePoint Online Management Shell

  1. Disinstallare tutte le versioni precedenti di SharePoint Online Management Shell.

  2. Scaricare e installare SharePoint Online Management Shell.

  3. Aprire SharePoint Online Management Shell e selezionare Esegui come amministratore.

Passaggio 2: configurare la directory di lavoro

Prima di iniziare la migrazione, è necessario configurare la cartella di lavoro con due cartelle vuote. Le cartelle non necessitano di molto spazio su disco, perché conterranno solo dati XML.

  1. Creare una cartella del pacchetto temporanea.

  2. Creare una cartella finale del pacchetto.

Passaggio 3: determinare le posizioni e le credenziali.

Identificare le credenziali e le posizioni dei file di origine, dei file di destinazione e del sito Web.

Nel computer locale aprire SharePoint Online Management Shell. Eseguire i comandi seguenti inserendo i propri valori:

$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

Passaggio 4: Creare un nuovo pacchetto di contenuto da una condivisione file locale

In questo passaggio si crea un nuovo pacchetto di migrazione da una condivisione file. Per creare un pacchetto di contenuto da una condivisione file, il New-SPOMigrationPackage comando legge l'elenco di contenuto di destinazione del percorso di origine e genera xml per eseguire la migrazione.

Se non sono contrassegnati come facoltativi, i parametri seguenti sono obbligatori:

  • SourcefilesPath: punta al contenuto che si è pianificato di migrare.

  • OutputPackagePath: punta alla cartella temporanea.

  • TargetWebUrl: punta al sito Web di destinazione.

  • TargetDocumentLibraryPath: punta alla raccolta documenti nel sito Web.

  • IgnoreHidden: ignora i file nascosti (facoltativo).

  • ReplaceInvalidCharacters: corregge i caratteri non validi, se possibile (facoltativo).

Esempio:

L'esempio seguente mostra come creare un nuovo pacchetto da una condivisione file. Ignora i file nascosti e sostituisce i caratteri non supportati nei nomi di file o cartelle.

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

Passaggio 5: Convertire il pacchetto di contenuto per il sito di destinazione

Usare il ConvertTo-SPOMigrationTargetedPackage comando per convertire il file SML generato nella cartella temporanea. Questo comando salva un nuovo set di file di metadati per il pacchetto di migrazione mirato nella directory di destinazione. Questo è il pacchetto finale.

Nota

Le credenziali dell'amministratore della raccolta siti di destinazione vengono usate per raccogliere dati da connettere alla raccolta siti di dati.

I parametri obbligatori da immettere sono sei (gli altri sono facoltativi):

  • ParallelImport: indica allo strumento di usare thread paralleli per ottimizzare le prestazioni.

  • SourceFiles: punta alla posizione della directory dei file di contenuto di origine del pacchetto.

  • SourcePackagePath: punta alla cartella del pacchetto temporanea.

  • OutputPackagePath: punta alla cartella del pacchetto finale.

  • Credentials: credenziali di SharePoint con diritti di amministratore per il sito di destinazione.

  • TargetWebUrl: URL del sito Web di destinazione.

  • TargetDocumentLibraryPath: il percorso della raccolta di destinazione.

Esempio:

Questo esempio mostra come convertire un pacchetto in un altro cercando i dati nella raccolta siti di destinazione. Per incrementare le prestazioni di migrazione della condivisione file, usa il parametro -ParallelImport.

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

Passaggio 6: Inviare il contenuto da importare

In questo passaggio viene usato il comando Invoke-SPOMigrationEncryptUploadSubmit per creare un nuovo processo di migrazione nella raccolta siti di destinazione e restituire un GUID che rappresenta l'ID di processo. Questo comando carica i manifesti e i file di origine crittografati nell'Archiviazione BLOB di Azure temporanea per i singoli processi.

I parametri obbligatori da immettere sono quattro. Gli altri sono facoltativi.

  • TargetwebURL: punta al sito Web di destinazione.

  • SourceFilesPath: punta ai file da importare.

  • SourcePackagePath: punta al manifesto finale dei file da importare.

  • Credentials: credenziali di SharePoint con diritti di amministratore della raccolta siti per il sito di destinazione.

Esempio 1:

Questo esempio mostra come inviare i dati del pacchetto per creare un nuovo processo di migrazione.

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

Esempio 2:

Questo esempio mostra come inviare i dati del pacchetto per creare nuovi processi di migrazione per l'importazione parallela.

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

Per ogni processo inviato, il cmdlet Invoke restituisce queste proprietà come parte di un processo:

  • JobId: ID del processo in SharePoint Online.

  • ReportingQueueUri: coda di Azure per SharePoint che archivia i messaggi in tempo reale sullo stato della migrazione.

  • Encryption: chiave e metodo di crittografia usati per il caricamento dei contenuti in Azure. Questa chiave è obbligatoria per decrittografare i messaggi della coda e importare i log.

Se si usa il proprio account di archiviazione di Azure per caricare il contenuto nell'archiviazione, usare Set-SPOMigrationPackageAzureSource e Submit-SPOMigrationJob.

Importante

Se si sceglie di usare l’Archiviazione di Azure, è possibile incorrere in spese per la larghezza di banda. Gli addebiti dipendono del tipo di offerta di Azure sottoscritta e dalle dimensioni della migrazione. Per i prezzi generali, consultare le tariffe per la larghezza di banda.

(Facoltativo) Passaggio 7: elaborare e monitorare la migrazione a SharePoint

Dopo l’invio del processo, solo Azure e SharePoint possono interagire per recuperare e trasferire il contenuto nella destinazione. Questo è un processo temporizzato, il che significa che si trova in una coda elaborata in ordine cronologico. Questo processo non impedisce alla stessa persona di accodare altri processi.

Se non sono in esecuzione altri processi, il ritardo potrebbe essere di 1 minuto.

Verificare lo stato del processo

Per verificare lo stato del processo, usare EncryptionKey restituito nel passaggio 6 per visualizzare gli aggiornamenti in tempo reale inseriti nell’account di archiviazione di Azure.

Visualizzare i log

Se si usa il proprio account di Archiviazione di Azure, è possibile visualizzare i log di tutti gli eventi che si sono verificati nel contenitore del manifesto in Archiviazione di Azure. In questa fase è possibile eliminare i contenitori, se non si vogliono conservare come copia di backup in Azure.

Se sono stati generati errori o avvisi, nel contenitore del manifesto verranno creati file con estensione err e won.

Se si usa l'archiviazione temporanea di Azure creata da Invoke-SPOMigrationEncryptUploadSubmit nel passaggio 6, è possibile ottenere l'URL di firma di accesso condiviso del log di importazione decrittografando il messaggio della coda di Azure con il valore "Event" JobLogFileCreate. È possibile usare l’URL SAS del log di importazione per scaricare il file di log e decrittografarlo con la chiave di crittografia indicata nel passaggio 6.

Scenari di scripting per il riutilizzo

Usare lo script di esempio seguente. include la procedura dalla determinazione delle posizioni e delle credenziali fino all'invio dei dati del pacchetto per la creazione di un nuovo processo di migrazione.

$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

Convertire il pacchetto in un pacchetto di destinazione cercando i dati nella raccolta siti di destinazione.

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

Inviare i dati del pacchetto per creare il processo di migrazione

$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

Questo esempio mostra come ottenere $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

Questo esempio mostra come ottenere la chiave di crittografia e un esempio di restituzione.

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

Importante

Tutti i messaggi vengono crittografati nella coda. Per leggere da ReportingQueue, è necessario avere EncryptionKey.

Procedure consigliate e limitazioni

Descrizione Consiglio
Dimensione pacchetto 10-20 GB
Usare il passaggio -ParallelImport per la migrazione della condivisione file che suddivide automaticamente il pacchetto più grande in pacchetti più piccoli.
Dimensioni dei file
2 GB
Dimensioni di destinazione
Il sito di destinazione deve rimanere non accessibile per gli utenti finché la migrazione non è completata.
Limiti di SharePoint
Limiti del servizio in SharePoint per Microsoft 365

Limiti di Azure

Risorsa Valore predefinito/Limite
TB per account di archiviazione
500
Dimensione massima di un singolo contenitore BLOB, tabella o coda.
500
Numero massimo di contenitori BLOB, BLOB, condivisioni file, tabelle, code, entità o messaggi per account di archiviazione.
L'unico limite è la capacità di 500 TB dell'account di archiviazione.
Velocità di destinazione per singolo BLOB
Fino a 60 MB o 500 richieste al secondo.

Riferimenti ai cmdlet per SharePoint Online