Ir al contenido principal

Migrar Mi sitios a OneDrive for Business con PowerShell

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 tus migraciones de los My Sites de SharePoint a OneDrive for Business.

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

Nota: Debes ser site collection admin en cada My Site y OneDrive, incluso si tienes privilegios de administrador superiores. En los pasos (10) y (25) más abajo, usarás permisos de Farm admin, SharePoint admin o global admin para aplicar permisos de site collection admin en todos tus My Sites y OneDrives. El script de PowerShell luego eliminará los permisos de site collection admin de cada My Site a medida que los vayas migrando.

Cómo hacerlo

Consejo: Para migrar tus documentos a una nueva carpeta en tus OneDrives, consulta Guía paso a paso - Migrar a una nueva carpeta de OneDrive en PowerShell.

Crea una guía CSV para tu migración

  1. Ve a All reports.

  2. Haz clic en Create custom report en la esquina superior derecha.

  3. Selecciona Site collection como el tipo de objeto.

  4. Haz clic en Continue without saving.

  5. Selecciona la Web app que usas para tus My Sites.

  6. Haz clic en Next.

  7. Haz clic en Run now.

  8. Selecciona todos tus My Sites con la casilla de verificación en la parte superior de la lista.

  9. Haz clic en Edit en el menú de acciones rápidas.

  10. Selecciona Add administrators en el menú desplegable Transformations.

  11. Busca y agrega tu cuenta en el campo Select user or group que aparece.

  12. Haz clic en Apply.

  13. Haz clic en Back dos veces para volver a los resultados de tu informe.

  14. Haz clic en Export en la esquina superior derecha.

  15. Guarda el archivo en tu unidad.

  16. Vuelve a All reports.

  17. Haz clic en Create custom report.

  18. Esta vez, selecciona OneDrive for Business como el tipo de objeto.

  19. Haz clic en Continue without saving.

  20. Selecciona el Microsoft 365 tenant que usas para tus OneDrives.

  21. Haz clic en Next.

  22. Haz clic en Run now.

  23. Selecciona todos tus OneDrives con la casilla de verificación en la parte superior de la lista.

  24. Haz clic en Edit en el menú de acciones rápidas.

  25. Selecciona Add administrators en el menú desplegable Transformations.

  26. Busca y agrega tu cuenta en el campo Select user or group que aparece.

  27. Haz clic en Apply.

  28. Haz clic en Back dos veces para volver a los resultados de tu informe.

  29. Haz clic en Export en la esquina superior derecha.

  30. Guarda el archivo en tu unidad.

  31. Abre Excel.

  32. Agrega los títulos SourceSite y DestinationSite a las dos primeras columnas.

  33. Abre los dos archivos que guardaste en los pasos anteriores.

  34. 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.

    Screen_Shot_2019-07-26_at_9.14.26_AM.png

    Si ordenar alfabéticamente no funciona, puedes reorganizar los datos manualmente o buscar una solución usando PowerShell o macros de Excel.

  35. 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 source and destination connections
$srcUsername = "sourceusername"
$srcPassword = ConvertTo-SecureString 'sourcepassword' -AsPlainText -Force
$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 the source site
$srcSite = Connect-Site -Url $row.SourceSite -Username $srcUsername -Password $srcPassword

# Connect to the destination site
$dstSite = Connect-Site -Url $row.DestinationSite -UseCredentialsFrom $dstSiteConnection

# Get the source and destination lists
$srcList = Get-List -Site $srcSite -Name "Documents"
$dstList = Get-List -Site $dstSite -Name "Documents"

# Copy content from the source list to the destination list
Copy-Content -SourceList $srcList -DestinationList $dstList

# Remove site collection administrator permissions
Remove-SiteCollectionAdministrator -Site $srcSite
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).

  • $srcUsername, $srcPassword: Reemplaza "sourceusername", 'sourcepassword', con tus credenciales de SharePoint.

  • $dstSiteConnection: Reemplaza la URL con la URL raíz de tus OneDrives en el inquilino correspondiente.

  • Connect-site: El comando para conectarse a un sitio de SharePoint. Si necesitas cambiar el método de autenticación, 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 foreach para recorrer los valores en tu archivo CSV. Puedes encontrar más información al respecto aquí.

  • -UseCredentialsFrom: Este script utiliza autenticación moderna con el parámetro -UseCredentialsFrom para reutilizar una sola conexión para tu destino. 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 programar la ejecución sin intervenció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 site collection administrator 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 las 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.

  • Copy & Replace se usa por defecto con este script. Si quieres realizar una migración incremental, puedes usar el comando New-CopySettings.

  • 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 pequeño subconjunto de cuentas de My Site 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. Si tienes dudas, consulta la versión original en inglés."

¿Ha quedado contestada tu pregunta?