Passer au contenu principal

Importer des documents Google Drive vers OneDrive for Business avec PowerShell

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

Ce guide explique comment utiliser PowerShell pour automatiser la migration de fichiers de Google My Drive vers OneDrive for Business à l’aide de la commande Import-GoogleDriveDocument.

Remarque : 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.

Astuce : Ce guide se concentre sur la migration de vos fichiers et dossiers vers la racine de la bibliothèque Documents dans OneDrive. Pour migrer vos documents vers un nouveau dossier, consultez l’article Guide pas à pas – Migrer vers un nouveau dossier OneDrive avec PowerShell.

Prérequis

Remarque : Vous devez être administrateur de la collection de sites sur chaque OneDrive, même si vous avez des privilèges d’administrateur supérieurs. À l’étape (15) ci-dessous, vous utiliserez les autorisations d’administrateur SharePoint ou d’administrateur général pour appliquer les autorisations d’administrateur de la collection de sites sur tous vos OneDrive. Le script PowerShell supprimera les autorisations d’administrateur de la collection de sites au fur et à mesure que vous migrez chaque Google Drive.

Procédure

Créer un guide CSV pour votre migration

Pour automatiser la migration, vous devez d’abord créer un fichier CSV qui fait correspondre vos Google Drive à vos OneDrive :

  1. Téléchargez la liste de tous les emails utilisateurs Google Drive au format CSV.

  2. Ouvrez le fichier CSV.

  3. Modifiez le fichier pour ne conserver qu’une seule colonne avec les adresses email Google Drive.

  4. Ajoutez une ligne d’en-tête.

  5. Nommez la première colonne GOOGLEDRIVEEMAIL.

  6. Ouvrez ShareGate Migrate.

  7. Sélectionnez All reports dans la barre latérale.

  8. Cliquez sur Create custom report.

  9. Sélectionnez OneDrive for Business comme type d’objet.

  10. Cliquez sur Continue without saving.

  11. Sélectionnez votre locataire.

  12. Cliquez sur Next.

  13. Désactivez Use local cache.

  14. Cliquez sur Run now.

  15. Sélectionnez tous les comptes OneDrive for Business en utilisant la coche en haut de la liste.

  16. Cliquez sur Edit dans le menu Quick actions.

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

  18. Ajoutez votre compte dans le champ Select user or group qui apparaît.

  19. Cliquez sur Apply.

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

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

  22. Enregistrez le fichier sur votre disque, puis ouvrez-le.

  23. Remplacez l’en-tête Site address par ONEDRIVEURL.

  24. Combinez ce CSV avec le CSV des emails Google Drive afin que chaque email Google Drive corresponde à la bonne URL OneDrive for Business.


    Remarque : 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.

  25. Enregistrez ce nouveau fichier au format CSV.

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:\MigrationPlanning\onedrivemigration.csv"

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

# Se connecter à Google Drive en tant qu’admin
$connection = Connect-GoogleDrive -Email [email protected] -Admin

# Définir la connexion OneDrive
$dstSiteConnection = Connect-Site -Url "https://destinationtenantname-my.sharepoint.com/" -ModernAuth

# Définir les variables pour les opérations sur le site et la liste
Set-Variable dstSite, dstList

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

# Se connecter au site OneDrive de l’utilisateur
$dstSite = Connect-Site -Url $row.ONEDRIVEURL -UseCredentialsFrom $dstSiteConnection

# Obtenir la liste "Documents" du site OneDrive
$dstList = Get-List -Name Documents -Site $dstSite

# Obtenir le Google Drive de l’utilisateur spécifié
$myDrive = Get-GoogleMyDrive -Connection $connection -Email $row.GOOGLEDRIVEEMAIL

# Importer les documents de Google Drive vers la liste "Documents" de OneDrive
Import-GoogleDriveDocument -Drive $myDrive -SourceView "MyDocuments" -DestinationList $dstList

# Retirer les autorisations d’administrateur de la collection de sites
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 séparateur est le symbole utilisé dans votre CSV pour séparer les éléments d’une ligne. Assurez-vous que votre script utilise le même séparateur que votre fichier (pour vérifier rapidement, ouvrez le CSV dans le Bloc-notes).

  • $connection : Remplacez l’email par l’email administrateur de votre Google Drive. Pour plus d’informations, consultez Connecter Google Drive.

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

  • $dstSite : Remplacez "myusername" par le nom d’utilisateur de votre compte administrateur Microsoft 365.

  • 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 qu’une erreur de connexion n’entraîne la copie de vos données dans le mauvais OneDrive.

  • foreach : Nous utilisons foreach pour parcourir les valeurs de votre fichier CSV. Pour en savoir plus sur l’utilisation de foreach dans vos scripts PowerShell ShareGate, consultez Copier vers et depuis plusieurs destinations avec une boucle foreach et un fichier CSV dans PowerShell.

  • -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 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 plusieurs fois vos informations d’identification avec les méthodes de connexion browser et modern.

  • Remove-SiteCollectionAdministrator : Supprime votre compte d’utilisateur en tant qu’administrateur de la collection de sites sur les OneDrive après chaque migration Google Drive. Pour plus d’informations, consultez Supprimer l’administrateur de la collection de sites.

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 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 à l’authentification Browser si besoin.

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

  • Vous pouvez planifier votre migration avec 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 en savoir plus sur l’utilisation des options de copie dans PowerShell, consultez Options de copie dans PowerShell.

  • 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. »

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