Nota: La integración con PowerShell requiere una suscripción Pro o Enterprise de ShareGate Migrate. No está disponible en el plan Essentials.
Esta guía explica cómo usar PowerShell para automatizar la migración de archivos desde Google My Drive a OneDrive for Business usando el comando Import-GoogleDriveDocument.
Nota: A finales de enero de 2026, Microsoft comenzó a desaprobar la cookie IDCRL, lo que significa que solo los métodos de autenticación Browser y Modern authentication con los parámetros -Browser y -ModernAuth funcionarán en la mayoría de los inquilinos de Microsoft 365. Para obtener más información sobre este cambio, consulta Cambio importante en la autenticación de "Otro usuario" para Microsoft 365.
Consejo: Esta guía se centra en migrar tus archivos y carpetas a la raíz de la biblioteca Documents en OneDrive. Para migrar tus documentos a una nueva carpeta, consulta la guía Guía paso a paso - Migrar a una nueva carpeta de OneDrive en PowerShell.
Requisitos previos
Configuraste tu dominio de Google Drive para conectarte como administrador.
Consulta Conectar como administrador para saber cómo puedes configurar tu entorno de Google para conectarte como administrador.
Tus OneDrives están aprovisionados (puedes automatizar este proceso con el cmdlet Get-OneDriveURL si es necesario).
Nota: Debes ser administrador de la colección de sitios en cada OneDrive, incluso si tienes privilegios de administrador superiores. En el paso (15) más abajo, usarás permisos de SharePoint admin o Global admin para aplicar permisos de administrador de la colección de sitios en todos tus OneDrives. El script de PowerShell eliminará los permisos de administrador de la colección de sitios a medida que migres cada Google Drive.
Cómo hacerlo
Crea una guía CSV para tu migración
Para automatizar la migración, primero necesitas crear un archivo CSV que relacione tus Google Drives con tus OneDrives:
Descarga una lista de todos los correos electrónicos de usuario de Google Drive como un archivo CSV.
Abre el archivo CSV.
Edita el archivo para dejar solo una columna con las direcciones de correo electrónico de Google Drive.
Agrega una fila de encabezado.
Nombra la primera columna GOOGLEDRIVEEMAIL.
Abre ShareGate Migrate.
Selecciona All reports en la barra lateral.
Haz clic en Create custom report.
Selecciona OneDrive for Business como tipo de objeto.
Haz clic en Continue without saving.
Selecciona tu inquilino.
Haz clic en Next.
Desactiva Use local cache.
Haz clic en Run now.
Selecciona todas las cuentas de OneDrive for Business usando la casilla de verificación en la parte superior de la lista.
Haz clic en Edit en el menú de acciones rápidas.
Selecciona Add administrators en el menú desplegable Transformations.
Agrega tu cuenta en el campo Select user or group que aparece.
Haz clic en Apply.
Haz clic en Back dos veces para volver a los resultados de tu informe.
Haz clic en Export en la esquina superior derecha.
Guarda el archivo en tu unidad y ábrelo.
Reemplaza el encabezado Site address por ONEDRIVEURL.
Combina este CSV con el CSV de correos electrónicos de Google Drive para que cada correo electrónico de Google Drive coincida con la URL correcta de OneDrive for Business.
Nota: Si el orden alfabético no funciona, puedes reorganizar tus datos manualmente o usar macros de Excel o PowerShell para encontrar una solución.Guarda este nuevo archivo como CSV.
Crea tu script
Copia y pega el siguiente script en la aplicación de PowerShell de tu preferencia:
Import-Module Sharegate
# Define the CSV file path
$csvFile = "C:\MigrationPlanning\onedrivemigration.csv"
# Import the CSV file
$table = Import-Csv $csvFile -Delimiter ","
# Connect to Google Drive as an admin
$connection = Connect-GoogleDrive -Email [email protected] -Admin
# Define OneDrive connection
$dstSiteConnection = Connect-Site -Url "https://destinationtenantname-my.sharepoint.com/" -ModernAuth
# Set variables for site and list operations
Set-Variable dstSite, dstList
# Loop through each row in the CSV
foreach ($row in $table) {
# Clear previous values of variables
Clear-Variable dstSite
Clear-Variable dstList
# Connect to the user's OneDrive site
$dstSite = Connect-Site -Url $row.ONEDRIVEURL -UseCredentialsFrom $dstSiteConnection
# Get the "Documents" list from the OneDrive site
$dstList = Get-List -Name Documents -Site $dstSite
# Get the Google Drive for the specified user
$myDrive = Get-GoogleMyDrive -Connection $connection -Email $row.GOOGLEDRIVEEMAIL
# Import documents from Google Drive to the OneDrive "Documents" list
Import-GoogleDriveDocument -Drive $myDrive -SourceView "MyDocuments" -DestinationList $dstList
# Remove site collection administrator permissions
Remove-SiteCollectionAdministrator -Site $dstSite
}
Ajusta tu script según tus necesidades. Aquí tienes algunas recomendaciones:
$csvFile: Ajusta la ruta para que apunte al archivo CSV que guardaste previamente.
$table: El delimitador es el símbolo que tu CSV usa para separar los elementos en una fila. Asegúrate de que tu script use el mismo delimitador que tu archivo (una forma rápida de verificarlo es abrir el CSV en el Bloc de notas).
$connection: Reemplaza el correo electrónico por el correo de administrador de tu Google Drive. Para más información, consulta Conectar Google Drive.
$dstSiteConnection: Reemplaza la URL por la URL raíz de tus OneDrives en el inquilino correspondiente.
$dstSite: Reemplaza "myusername" por el nombre de usuario de tu cuenta de administrador de Microsoft 365.
Connect-site: El comando para conectarse a un sitio de SharePoint o OneDrive for Business. Si necesitas cambiar el método de autenticación desde Modern authentication, consulta Connect Site.
Set-Variable y Clear-Variable: Estos comandos ayudan a prevenir un problema donde una falla de conexión puede hacer que tus datos terminen en el OneDrive incorrecto.
foreach: Usamos
foreachpara recorrer los valores en tu archivo CSV. Para saber más sobre cómo usarforeachen tus scripts de PowerShell de ShareGate, consulta Copiar hacia y desde múltiples destinos con una instrucción foreach y un archivo CSV en PowerShell.-UseCredentialsFrom: Este script utiliza Modern authentication con el parámetro -UseCredentialsFrom para reutilizar una sola conexión. El script te pedirá tus credenciales de Microsoft 365 al iniciarlo. Si no se aplica MFA en tu inquilino(s), puedes configurar tu script para usar un nombre de usuario y contraseña para programaciones desatendidas. Para más información, consulta Connect-Site y Evita ingresar tus credenciales repetidamente con los métodos de conexión browser y modern.
Remove-SiteCollectionAdministrator: Elimina tu cuenta de usuario como administrador de la colección de sitios en los OneDrives después de cada migración de Google Drive. Para más información, consulta Eliminar administrador de la colección de sitios.
Ejecuta tu script una vez que esté correctamente ajustado y probado.
Consideraciones
Modern authentication con -ModernAuth es el método de autenticación más seguro y persistente para Microsoft 365, y puede usarse con variables de Username y Password siempre que no se aplique la autenticación multifactor (MFA). También existen algunas limitaciones. Consulta Connect-Site para conocer diferentes formas de usar este método de conexión, o para cambiar a Browser authentication si es necesario.
Los informes de migración se generan automáticamente y puedes encontrarlos en Tasks. También puedes exportarlos con Export-Report en tu script.
Puedes programar tu migración usando PowerShell para ejecutarla fuera del horario laboral y optimizar el rendimiento.
Para realizar una migración incremental, consulta el artículo Actualización incremental usando PowerShell.
Para saber más sobre las opciones de copia en PowerShell, consulta Opciones de copia en PowerShell.
Errores de script y pruebas: Prueba tu script de PowerShell en un pequeño subconjunto de cuentas de OneDrive antes de aplicarlo a gran escala. Las pruebas ayudan a identificar posibles problemas en un entorno controlado.
"Este artículo fue traducido usando inteligencia artificial. En caso de duda, consulta la versión original en inglés."
