Chargement de contenu local vers SharePoint à l’aide des cmdlets PowerShell

Remarque

L’outil de migration SharePoint (SPMT) vous aide à simplifier votre processus de migration. SPMT fournit une expérience semblable à l’Assistant pour vous guider dans la migration de sites d’équipe SharePoint Server ou de partages de fichiers réseau vers Microsoft 365. Il est disponible pour tous les utilisateurs de Microsoft 365 : Télécharger SPMT.

Importante

L’outil de migration SharePoint n’est pas disponible actuellement pour les utilisateurs d’Office 365 géré par 21Vianet en Chine.

Cet article décrit l’utilisation des cmdlets PowerShell de migration de SharePoint pour migrer du contenu d’un partage de fichiers local vers Microsoft 365.

Les cmdlets PowerShell de migration de SharePoint sont conçues pour déplacer du contenu local à partir de partages de fichiers. Ils ont besoin d’appels CSOM minimes et utilisent le stockage d’objets blob temporaire Azure pour gérer des migrations importantes de données.

Configuration requise

  • Systèmes d’exploitation pris en charge :

    • 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

Remarque

Autorisations : vous devez être administrateur de la collection de sites sur le site que vous ciblez.

Avant de commencer

Étape 1 : installer SharePoint Online Management Shell

  1. Désinstallez toutes les versions précédentes de SharePoint Online Management Shell.

  2. Télécharger et installez SharePoint Online Management Shell.

  3. Ouvrez SharePoint Online Management Shell, puis sélectionnez Exécuter en tant qu’administrateur.

Étape 2 : configurer votre répertoire de travail

Avant de commencer la migration, vous devez configurer votre répertoire de travail avec deux dossiers vides. Ces dossiers n’ont pas besoin de beaucoup d’espace disque, car ils ne contiennent que du XML.

  1. Créez un dossier de package temporaire.

  2. Créez un dossier de package final.

Étape 3 : déterminez les emplacements et informations d'identification

Identifiez vos informations d’identification et les emplacements de vos fichiers sources, fichiers cibles et du web.

Sur votre ordinateur local, ouvrez SharePoint Online Management Shell. Exécutez ces commandes tout en insérant vos valeurs :

$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

Étape 4 : créer un package de contenu à partir d'un partage de fichiers local

À cette étape, vous allez créer un package de migration à partir d'un partage de fichiers. Pour créer un package de contenu à partir d’un partage de fichiers, la New-SPOMigrationPackage commande lit la liste du contenu ciblé par le chemin d’accès source et génère du code XML pour effectuer la migration.

Les paramètres suivants sont obligatoires, sauf s'ils sont marqués comme étant facultatifs :

  • SourcefilesPath : pointe vers le contenu que vous voulez migrer.

  • OutputPackagePath : pointe vers votre dossier temporaire.

  • TargetWebUrl : pointe sur votre site web de destination.

  • TargetDocumentLibraryPath : pointe sur la bibliothèque de documents dans le site web.

  • IgnoreHidden: ignorer les fichiers masqués (facultatif).

  • ReplaceInvalidCharacters : résout les caractères non valides lorsque c'est possible (facultatif).

Exemple :

Cet exemple montre comment créer un package à partir d’un partage de fichiers. Il ignore les fichiers cachés et remplace les caractères non pris en charge dans les noms des fichiers ou dossiers.

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

Étape 5 : convertir le package de contenu pour votre site cible

Utilisez la ConvertTo-SPOMigrationTargetedPackage commande pour convertir le SML généré dans votre dossier temporaire. Celle-ci enregistre un nouveau jeu de fichiers de métadonnées de package de migration ciblé dans le répertoire cible. Il s'agit du package final.

Remarque

Vos informations d’identification d’administrateur de la collection de sites cible sont utilisées pour collecter des données pour vous connecter à la collection de sites de données.

Il existe six paramètres obligatoires à entrer (les autres sont facultatifs) :

  • ParallelImport : indique à l’outil d’utiliser le thread parallèle pour l’optimisation de la performance.

  • SourceFiles : pointe vers l’emplacement du répertoire des fichiers de contenu source du package.

  • SourcePackagePath : pointe vers votre dossier de package temporaire.

  • OutputPackagePath : pointe vers votre dossier de package final.

  • Informations d'identification : informations d’identification SharePoint disposant des droits d’administrateur pour le site de destination.

  • TargetWebUrl: URL de votre site web de destination.

  • TargetDocumentLibraryPath : chemin d’accès à votre bibliothèque de destination.

Exemple :

cet exemple montre comment convertir un package en un autre ciblé en recherchant les données dans la collection de sites cible. Il utilise le paramètre -ParallelImport pour améliorer les performances de migration du partage de fichiers.

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

Étape 6 : envoyer le contenu à importer

 cette étape, la commande Invoke-SPOMigrationEncryptUploadSubmit crée un travail de migration dans la collection de sites cible, puis renvoie un GUID représentant l'ID de travail. Cette commande charge les fichiers sources et manifestes chiffrés dans un stockage Blob Azure temporaire par travail.

Quatre paramètres obligatoires doivent être entrés. Les autres sont facultatifs.

  • TargetwebURL : pointe vers le site web de la destination.

  • SourceFilesPath : pointe vers les fichiers à importer.

  • SourcePackagePath : pointe vers le manifeste final des fichiers à importer.

  • Informations d'identification : les informations d’identification SharePoint qui disposent de droits d’administrateur de collection de sites pour le site de destination.

Exemple 1 :

cet exemple montre comment envoyer des données de package pour créer une tâche de migration.

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

Exemple 2 :

cet exemple montre comment envoyer des données de package pour créer des tâches de migration pour une importation parallèle.

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

Pour chaque tâche soumise, la cmdlet Invoke renvoie ces propriétés dans le cadre d’une tâche :

  • JobId : ID de la tâche dans SPO.

  • ReportingQueueUri : file d’attente SharePoint Azure qui stocke les messages de progression en temps réel de la migration.

  • Chiffrement : clé de chiffrement et méthode utilisées lors du chargement du contenu dans Azure. Cette clé est obligatoire lors du déchiffrement des messages de la file d'attente et des journaux de l'importation.

Si vous utilisez votre propre compte de stockage Azure pour charger du contenu dans votre stockage, utilisez Set-SPOMigrationPackageAzureSource et Submit-SPOMigrationJob.

Importante

Si vous choisissez d’utiliser votre espace de stockage Azure, sachez que vous risquez d’occasionner des frais de bande passante. Les frais dépendent de votre type d’offre Azure et de la taille de la migration. Pour les prix généraux, consultez la tarification de la bande passante.

(Facultative) Étape 7  : traiter et surveiller votre migration SharePoint

Une fois que le travail est soumis, uniquement Azure et SharePoint interagissent pour extraire et migrer le contenu vers la destination. Ce processus est basé sur un travail du minuteur, ce qui signifie qu’il figure dans une file d’attente fonctionnant selon le principe du premier arrivé, premier servi. Ce processus n’empêche pas la même personne d’être dans la file d’attente d’autres tâches.

Si aucune autre tâche en cours d’exécution ne s’exécute, il peut y avoir un délai de 1 minute.

Vérifier l’état d’une tâche

Pour vérifier l’état de votre tâche, utilisez la valeur EncryptionKey renvoyée à l’étape 6 pour afficher les mises à jour en temps réel publiées dans le compte de stockage Azure.

Afficher les journaux

Si vous utilisez votre propre compte de stockage Azure, vous pouvez afficher tout ce qui s’est produit dans le conteneur de manifeste de l'espace de stockage Azure. À ce stade, si vous pouvez par mesure de sécurité supprimer ces conteneurs, si vous ne voulez pas les conserver comme sauvegarde dans Azure.

En cas d’erreurs ou d’avertissements, des fichiers .err ou .won sont créés dans le conteneur de manifeste.

Si vous utilisez le stockage Azure temporaire créé par Invoke-SPOMigrationEncryptUploadSubmit à l’étape 6, vous pouvez obtenir l’URL SAS du journal d’importation en déchiffrant le message de file d’attente Azure avec la valeur « Event » JobLogFileCreate. Avec l'URL SAS du journal d'importation, vous pouvez télécharger le fichier journal et le déchiffrer avec la clé de chiffrement retournée à l'étape 6.

Scénarios de script en vue d’une réutilisation

Utilisez ce modèle de script. Il inclut les étapes allant de la détermination de vos emplacements et informations d’identification, la soumission des données de votre package, à la création d’une tâche de migration.

$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

Convertir le package en un package ciblé en recherchant des données dans la collection de sites cible

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

Soumettre des données de package pour créer une tâche de migration

$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

Cet exemple montre comment obtenir le $job.ReportingQueueURi.AbsoluteUri.

# 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

Cet exemple montre comment obtenir la clé de chiffrement et l’exemple de retour.

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

Importante

Tous les messages sont chiffrés dans la file d’attente. Si vous voulez lire le contenu de ReportingQueue, vous devez disposer de la valeur EncryptionKey.

Meilleures pratiques et limitations

Description Recommandation
Taille du package 10-20 Go
Utilisez le commutateur -ParallelImport pour la migration de partages de fichiers qui fractionne automatiquement les packages de grande taille en petits packages.
Taille des fichiers
2 Go
Taille cible
Le site cible doit rester non accessible aux utilisateurs jusqu’à ce que la migration soit terminée.
Limites de SharePoint
Limites de service dans SharePoint pour Microsoft 365

Limites Azure

Ressource Par défaut/Limite
To par compte de stockage
500
Taille maximale de file d’attente, table ou conteneur d’objets BLOB unique.
500
Nombre maximal de conteneurs d’objets BLOB, d’objets BLOB, de partages de fichiers, tables, de files d’attente, d’entités ou de messages par compte de stockage.
La seule limite est la capacité de compte de stockage de 500 To.
Débit cible pour un objet BLOB unique
Jusqu’à 60 Mo ou 500 demandes par seconde.

Les références de cmdlet concernent SharePoint Online