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 votre migration de OneDrive for Business vers OneDrive for Business.
Astuce : Pour migrer vos documents vers un nouveau dossier OneDrive, consultez Guide pas à pas - Migrer vers un nouveau dossier OneDrive avec PowerShell.
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
Des autorisations Global administrator ou SharePoint administrator sont requises sur la source et la destination.
Vos OneDrive ont été provisionnés (cela peut être automatisé avec la cmdlet Get-OneDriveURL).
Note : Vous devez être administrateur de la collection de sites sur chaque OneDrive, même si vous disposez de privilèges d’administrateur supérieurs. À l’étape (9) ci-dessous, vous utiliserez les autorisations SharePoint admin ou global admin pour appliquer les autorisations de collection de sites à tous vos OneDrive. Le script PowerShell supprimera les autorisations d’administrateur de la collection de sites au fur et à mesure de la migration de chaque OneDrive.
Procédure
Pour votre migration OneDrive for Business, vous devrez lister tous vos OneDrive source et destination dans un fichier CSV et créer un script PowerShell qui boucle sur ces paramètres pour copier chaque OneDrive.
Créer un guide CSV pour votre migration
Allez dans All reports.
Cliquez sur Create custom report dans le coin supérieur droit.
Sélectionnez OneDrive for Business comme type d’objet.
Cliquez sur Continue without saving.
Sélectionnez votre locataire source.
Cliquez sur Run.
Sélectionnez tous vos OneDrives avec la case à cocher en haut de la liste.
Cliquez sur Edit dans le menu Quick actions
Sélectionnez Add administrators dans le menu déroulant Transformations.
Recherchez et ajoutez votre compte dans le champ Select user or group qui apparaît.
Cliquez sur Apply.
Cliquez deux fois sur Back pour revenir aux résultats de votre rapport.
Cliquez sur Export dans le coin supérieur droit.
Enregistrez le fichier sur votre disque.
Répétez les étapes (1) à (14), en sélectionnant votre locataire de destination à l’étape (5).
Ouvrez Excel.
Ajoutez les titres SourceSite et DestinationSite dans les deux premières colonnes.
Ouvrez les deux fichiers que vous avez enregistrés aux étapes (14) et (15).
Combinez les données des deux fichiers dans le nouveau document afin que l’URL source corresponde à l’URL de destination sous leur colonne respective.
Si le tri alphabétique ne fonctionne pas, vous pouvez réorganiser vos données manuellement ou utiliser des macros Excel ou PowerShell pour trouver une solution.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
$srcSiteConnection = Connect-Site -Url "https://sourcetenantname-my.sharepoint.com/" -ModernAuth
$dstSiteConnection = Connect-Site -Url "https://destinationtenantname-my.sharepoint.com/" -ModernAuth
# Définir les variables pour les opérations sur les sites et listes
Set-Variable srcSite, dstSite, srcList, dstList
# Boucler 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 aux sites source et destination
$srcSite = Connect-Site -Url $row.SourceSite -UseCredentialsFrom $srcSiteConnection
$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 destination
Copy-Content -SourceList $srcList -DestinationList $dstList
# Supprimer les autorisations d’administrateur de la collection de sites
Remove-SiteCollectionAdministrator -Site $srcSite
Remove-SiteCollectionAdministrator -Site $dstSite
}
Adaptez votre script pour qu’il fonctionne dans votre environnement. 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 (pour vérifier rapidement, ouvrez le CSV dans le Bloc-notes).
$srcSiteConnection et $dstSiteConnection : Remplacez l’URL par l’URL racine de vos OneDrive dans le locataire source et destination correspondant.
Connect-site : La commande pour se connecter à un site SharePoint ou OneDrive for Business. Si vous devez changer la méthode d’authentification depuis Modern authentication, consultez Connect Site.
Set-Variable et Clear-Variable : Ces commandes permettent d’éviter un problème où une erreur de connexion pourrait entraîner la copie 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 Modern authentication avec le paramètre -UseCredentialsFrom pour réutiliser une seule connexion. Ce script vous demandera vos informations d’identification Microsoft 365 au démarrage. Si l’authentification multifacteur (MFA) n’est pas appliqué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 modern.
Remove-SiteCollectionAdministrator : Cette fonction supprime 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 appliqué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 en utilisant PowerShell pour l’exécuter en dehors des heures de bureau et optimiser les performances.
Pour effectuer une migration incrémentale, consultez l’article Mise à jour incrémentale avec PowerShell.
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 OneDrive 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."
