Passer au contenu principal

Migrer les Mon sites vers OneDrive for Business avec PowerShell

Note : L’intégration PowerShell nécessite un abonnement Pro ou Enterprise à ShareGate Migrate. Elle n’est pas disponible avec le plan Essentials.

Utilisez PowerShell pour automatiser la migration de vos collections de sites Mon site SharePoint vers OneDrive for Business.

Note : Fin janvier 2026, Microsoft a commencé à déprécier le cookie IDCRL, ce qui signifie que seules les méthodes d’authentification Browser et Modern authentication avec les paramètres -Browser et -ModernAuth fonctionneront dans la plupart des locataires Microsoft 365. Pour en savoir plus sur ce changement, consultez Changement important concernant l’authentification « Autre utilisateur » pour Microsoft 365.

Prérequis

Note : Vous devez être administrateur de la collection de sites sur chaque Mon site et OneDrive, même si vous avez des privilèges d’administration supérieurs. Aux étapes (10) et (25) ci-dessous, vous utiliserez les autorisations d’administrateur de la ferme, d’administrateur SharePoint ou d’administrateur global pour appliquer les autorisations d’administrateur de la collection de sites sur tous vos Mon site et OneDrive. Le script PowerShell supprimera ensuite les autorisations d’administrateur de la collection de sites pour chaque Mon site au fur et à mesure de leur migration.

Procédure

Astuce : Pour migrer vos documents vers un nouveau dossier dans vos OneDrive, consultez Guide pas à pas – Migrer vers un nouveau dossier OneDrive avec PowerShell.

Créer un guide CSV pour votre migration

  1. Allez dans All reports.

  2. Cliquez sur Create custom report dans le coin supérieur droit.

  3. Sélectionnez Site collection comme type d’objet.

  4. Cliquez sur Continue without saving.

  5. Sélectionnez la Web app que vous utilisez pour vos My Sites.

  6. Cliquez sur Next.

  7. Cliquez sur Run now.

  8. Sélectionnez tous vos My Sites avec la case à cocher en haut de la liste.

  9. Cliquez sur Edit dans le menu Quick actions.

  10. Sélectionnez Add administrators dans le menu déroulant Transformations.

  11. Recherchez et ajoutez votre compte dans le champ Select user or group qui apparaît.

  12. Cliquez sur Apply.

  13. Cliquez deux fois sur Back pour revenir aux résultats de votre rapport.

  14. Cliquez sur Export dans le coin supérieur droit.

  15. Enregistrez le fichier sur votre disque.

  16. Retournez dans All reports.

  17. Cliquez sur Create custom report.

  18. Cette fois, sélectionnez OneDrive for Business comme type d’objet.

  19. Cliquez sur Continue without saving.

  20. Sélectionnez le locataire Microsoft 365 que vous utilisez pour vos OneDrive.

  21. Cliquez sur Next.

  22. Cliquez sur Run now.

  23. Sélectionnez tous vos OneDrive avec la case à cocher en haut de la liste.

  24. Cliquez sur Edit dans le menu Quick actions.

  25. Sélectionnez Add administrators dans le menu déroulant Transformations.

  26. Recherchez et ajoutez votre compte dans le champ Select user or group qui apparaît.

  27. Cliquez sur Apply.

  28. Cliquez deux fois sur Back pour revenir aux résultats de votre rapport.

  29. Cliquez sur Export dans le coin supérieur droit.

  30. Enregistrez le fichier sur votre disque.

  31. Ouvrez Excel.

  32. Ajoutez les titres SourceSite et DestinationSite aux deux premières colonnes.

  33. Ouvrez les deux fichiers que vous avez enregistrés lors des étapes précédentes.

  34. Combinez les données des deux fichiers dans le nouveau document afin que l’URL source corresponde à l’URL de destination dans leur colonne respective.

    Screen_Shot_2019-07-26_at_9.14.26_AM.png

    Si le tri alphabétique ne fonctionne pas, vous pouvez réorganiser manuellement vos données ou chercher une solution avec PowerShell ou des macros Excel.

  35. Enregistrez ce nouveau fichier au format CSV sur votre disque.

Créez votre script

Copiez et collez le script suivant dans l’application PowerShell de votre choix.

Import-Module Sharegate

# Définir le chemin du fichier CSV
$csvFile = "C:\CSV\CopyContent.csv"

# Importer le fichier CSV
$table = Import-Csv $csvFile -Delimiter ","

# Définir les connexions source et destination
$srcUsername = "sourceusername"
$srcPassword = ConvertTo-SecureString 'sourcepassword' -AsPlainText -Force
$dstSiteConnection = Connect-Site -Url "https://destinationtenantname-my.sharepoint.com/" -ModernAuth


# Définir les variables pour les opérations sur les sites et les listes
Set-Variable srcSite, dstSite, srcList, dstList

# Boucle sur chaque ligne du CSV
foreach ($row in $table) {
# Effacer les valeurs précédentes des variables
Clear-Variable srcSite
Clear-Variable dstSite
Clear-Variable srcList
Clear-Variable dstList

# Se connecter au site source
$srcSite = Connect-Site -Url $row.SourceSite -Username $srcUsername -Password $srcPassword

# Se connecter au site de destination
$dstSite = Connect-Site -Url $row.DestinationSite -UseCredentialsFrom $dstSiteConnection

# Obtenir les listes source et destination
$srcList = Get-List -Site $srcSite -Name "Documents"
$dstList = Get-List -Site $dstSite -Name "Documents"

# Copier le contenu de la liste source vers la liste de destination
Copy-Content -SourceList $srcList -DestinationList $dstList

# Retirer les autorisations d’administrateur de la collection de sites
Remove-SiteCollectionAdministrator -Site $srcSite
Remove-SiteCollectionAdministrator -Site $dstSite
}

Adaptez votre script selon vos besoins. Voici quelques conseils :

  • $csvFile : Modifiez le chemin pour pointer vers le fichier CSV que vous avez enregistré précédemment.

  • $table : Le délimiteur est le symbole utilisé par votre CSV pour séparer les éléments d’une ligne. Assurez-vous que votre script utilise le même délimiteur que votre fichier (vous pouvez le vérifier rapidement en ouvrant le CSV dans le Bloc-notes).

  • $srcUsername, $srcPassword : Remplacez "sourceusername", 'sourcepassword', par vos informations d’identification SharePoint.

  • $dstSiteConnection : Remplacez l’URL par l’URL racine de vos OneDrive dans le locataire concerné.

  • Connect-site : La commande pour se connecter à un site SharePoint. Si vous devez changer la méthode d’authentification, consultez Connect Site.

  • Set-Variable et Clear-Variable : Ces commandes permettent d’éviter qu’une erreur de connexion n’entraîne le transfert de vos données dans le mauvais OneDrive.

  • foreach : Nous utilisons foreach pour parcourir les valeurs de votre fichier CSV. Vous pouvez en savoir plus à ce sujet ici.

  • -UseCredentialsFrom : Ce script utilise l’authentification moderne avec le paramètre -UseCredentialsFrom pour réutiliser une seule connexion pour votre destination. Ce script vous demandera vos informations d’identification Microsoft 365 au démarrage. Si la MFA n’est pas activée sur votre locataire, vous pouvez configurer votre script pour utiliser un nom d’utilisateur et un mot de passe pour une planification sans surveillance. Pour en savoir plus, consultez Connect-Site et Éviter de saisir vos informations d’identification à chaque fois avec les méthodes de connexion browser et moderne.

  • Remove-SiteCollectionAdministrator : Cette fonction retire votre compte d’utilisateur en tant qu’administrateur de la collection de sites sur OneDrive après sa migration. Pour plus d’informations, consultez Remove Site Collection Administrator.

Exécutez votre script une fois qu’il est correctement ajusté et testé.

À prendre en compte

  • Modern authentication avec -ModernAuth est la méthode d’authentification la plus sécurisée et la plus persistante pour Microsoft 365, et elle peut être utilisée avec les variables Username et Password tant que l’authentification multifacteur (MFA) n’est pas activée. Il existe aussi quelques limitations. Consultez Connect-Site pour découvrir différentes façons d’utiliser cette méthode de connexion, ou pour passer à Browser authentication si besoin.

  • Les rapports de migration sont générés automatiquement et vous pouvez les retrouver dans Tasks. Vous pouvez aussi exporter les rapports dans votre script avec Export-Report.

  • Vous pouvez planifier votre migration avec PowerShell pour l’exécuter en dehors des heures de bureau et optimiser les performances.

  • Copy & Replace est utilisé par défaut avec ce script. Si vous souhaitez effectuer une migration incrémentale, vous pouvez utiliser la commande New-CopySettings.

  • Pour reproduire les options de copie de ShareGate Migrate, consultez Options de copie dans PowerShell.

  • Si vous avez des centaines de gigaoctets de données à migrer, nous vous recommandons de créer plusieurs fichiers CSV pour exécuter la migration en petits lots.

  • Erreurs de script et tests : Testez votre script PowerShell sur un petit sous-ensemble de comptes Mon site avant de l’appliquer à grande échelle. Les tests permettent d’identifier d’éventuels problèmes dans un périmètre contrôlé.


"Cet article a été traduit à l’aide de l’intelligence artificielle. En cas de doute, veuillez vous référer à la version originale en anglais."

Avez-vous trouvé la réponse à votre question ?