Nota: La integración con PowerShell requiere una suscripción Pro o Enterprise de ShareGate Migrate. No está disponible en el plan Essentials.
Usa PowerShell para automatizar tu migración de OneDrive for Business a OneDrive for Business.
Consejo: Para migrar tus documentos a una nueva carpeta de OneDrive, consulta Guía paso a paso - Migrar a una nueva carpeta de OneDrive en PowerShell.
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.
Requisitos previos
Se requieren permisos de administrador global o administrador de SharePoint en el origen y el destino.
Tus OneDrives ya deben estar aprovisionados (esto se puede automatizar con el cmdlet Get-OneDriveURL).
Nota: Debes ser administrador de la colección de sitios en cada OneDrive, incluso si tienes privilegios de administrador superiores. En el paso (9) más abajo, usarás permisos de administrador de SharePoint o de administrador global para aplicar permisos de colección de sitios a todos tus OneDrives. El script de PowerShell eliminará los permisos de administrador de la colección de sitios a medida que migres cada OneDrive.
Cómo hacerlo
Para tu migración de OneDrive for Business, necesitarás listar todos tus OneDrives de origen y destino en un archivo CSV y crear un script de PowerShell que recorra estos parámetros para copiar cada OneDrive.
Crea una guía CSV para tu migración
Ve a All reports.
Haz clic en Create custom report en la esquina superior derecha.
Selecciona OneDrive for Business como tipo de objeto.
Haz clic en Continue without saving.
Selecciona tu inquilino de origen.
Haz clic en Run.
Selecciona todos tus OneDrives con 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.
Busca y 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.
Repite los pasos (1) al (14), seleccionando tu inquilino de destino en el paso (5).
Abre Excel.
Agrega los títulos SourceSite y DestinationSite a las dos primeras columnas.
Abre los dos archivos que guardaste en los pasos (14) y (15).
Combina los datos de ambos archivos en el nuevo documento para que la URL de origen corresponda a la URL de destino bajo su respectiva columna.
Si ordenar alfabéticamente 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 en tu unidad.
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:\CSV\CopyContent.csv"
# Import the CSV file
$table = Import-Csv $csvFile -Delimiter ","
# Define the source and destination connections
$srcSiteConnection = Connect-Site -Url "https://sourcetenantname-my.sharepoint.com/" -ModernAuth
$dstSiteConnection = Connect-Site -Url "https://destinationtenantname-my.sharepoint.com/" -ModernAuth
# Set variables for site and list operations
Set-Variable srcSite, dstSite, srcList, dstList
# Loop through each row in the CSV
foreach ($row in $table) {
# Clear previous values of variables
Clear-Variable srcSite
Clear-Variable dstSite
Clear-Variable srcList
Clear-Variable dstList
# Connect to source and destination sites
$srcSite = Connect-Site -Url $row.SourceSite -UseCredentialsFrom $srcSiteConnection
$dstSite = Connect-Site -Url $row.DestinationSite -UseCredentialsFrom $dstSiteConnection
# Get source and destination lists
$srcList = Get-List -Site $srcSite -Name "Documents"
$dstList = Get-List -Site $dstSite -Name "Documents"
# Copy content from source list to destination list
Copy-Content -SourceList $srcList -DestinationList $dstList
# Remove site collection administrator permissions
Remove-SiteCollectionAdministrator -Site $srcSite
Remove-SiteCollectionAdministrator -Site $dstSite
}
Ajusta tu script para que funcione en tu entorno. 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).
$srcSiteConnection y $dstSiteConnection: Reemplaza la URL con la URL raíz de tus OneDrives en el inquilino de origen y destino correspondiente.
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 evitar un problema donde una falla de conexión puede hacer que tus datos terminen en el OneDrive incorrecto.
foreach: Usamos foreach para recorrer los valores en tu archivo CSV. Puedes encontrar más información al respecto aquí.
-UseCredentialsFrom: Este script utiliza Modern authentication con el parámetro -UseCredentialsFrom para reutilizar una sola conexión. Este 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 sin supervisión. 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: Esta función elimina tu cuenta de usuario como administrador de la colección de sitios en OneDrive después de su migración. Para más información, consulta Remove Site Collection Administrator.
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 las variables 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 exportar los informes en tu script con Export-Report.
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 replicar las opciones de copia de ShareGate Migrate, consulta Opciones de copia en PowerShell.
Si tienes cientos de gigabytes de datos para migrar, te recomendamos crear varios archivos CSV para ejecutar la migración en lotes más pequeños.
Errores de script y pruebas: Prueba tu script de PowerShell en un subconjunto pequeño de cuentas de OneDrive antes de aplicarlo de forma general. Las pruebas ayudan a identificar posibles problemas en un alcance controlado.
Organizaciones multilingües: Si tu entorno de Microsoft 365 utiliza varios idiomas de visualización, el nombre de la biblioteca que pases a
-Nameen tu script puede no coincidir con el nombre real de la biblioteca. Por ejemplo, una biblioteca Documents puede llamarse Dokumente en un entorno alemán, lo que hace que el script falle. Consulta No se puede validar el argumento en el parámetro 'List' - organizaciones multilingües para más detalles.
"Este artículo fue traducido usando inteligencia artificial. En caso de duda, consulta la versión original en inglés."
