Migrar a SharePoint con PowerShellMigrate to SharePoint using PowerShell

En este artículo, se describen los nuevos cmdlets de PowerShell basados en el motor de migración de la Herramienta de migración de SharePoint (SPMT). Se pueden usar para mover elementos de listas y bibliotecas de documentos locales de SharePoint 2010 y SharePoint 2013, así como recursos de archivos compartidos a Microsoft 365. Para obtener información sobre todos los cmdlets de PowerShell actuales relacionados con la migración de SharePoint, consulte la Referencia de cmdlet de la Herramienta de migración de Microsoft SharePoint.This article is about the new PowerShell cmdlets based on the SharePoint Migration Tool (SPMT) migration engine. They can be used to move files from SharePoint 2010 and SharePoint 2013 on-premises document libraries and list items, and file shares to Microsoft 365. For information on all current PowerShell cmdlets relating to SharePoint migration, please see the Microsoft SharePoint Migration Tool cmdlet reference.

Los cmdlets de PowerShell proporcionan las mismas funcionalidades que la Herramienta de migración de SharePoint.The PowerShell cmdlets provide the same functionalities as the SharePoint Migration Tool.

Nota

Los siguientes cmdlets de PowerShell no están disponibles actualmente para los usuarios de Office 365 ofrecido por 21Vianet en China. Tampoco está disponible para los usuarios de Microsoft 365 con la nube alemán que usa el usuario en el que se confía, Alemán Telekom. Sin embargo, se admiten para los usuarios de Alemania cuya ubicación de datos no se encuentra en el centro de datos alemán.These PowerShell cmdlets are currently not available for users of Office 365 operated by 21Vianet in China. They are also not available for users of Microsoft 365 with the German cloud using the data trustee, German Telekom. However, they are supported for users in Germany whose data location is not in the German datacenter.

Requisitos del sistemaSystem requirements

Requisitos recomendados para lograr el mejor rendimientoRecommended requirements for best performance

DescripciónDescription RecomendaciónRecommendation
CPUCPU Procesador de cuatro núcleos de 64 bits o superior64-bit Quad core processor or better
RAMRAM 16 GB16 GB
Almacenamiento localLocal Storage Disco duro: 150 GB de espacio disponibleHard disk: 150 GB free space
Sistema operativoOperating system Windows Server 2016 Standard o DatacenterWindows Server 2016 Standard or Datacenter
Windows Server 2012 R2Windows Server 2012 R2
Cliente de Windows 10Windows 10 client
.NET Framework 4.6.2.NET Framework 4.6.2
Componente redistribuible de Microsoft Visual C++ 2015Microsoft Visual C++ 2015 Redistributable Se necesita para la migración de OneNote.Required for OneNote migration

Importante

PowerShell 5.0 y .NET Framework 4.6.2 o superior son necesarios para permitir la migración de rutas de archivo de hasta 400 caracteres.PowerShell 5.0 and .NET Framework 4.6.2 or higher are required to support the migration of file paths of up to 400 characters.

Requisitos mínimos (es de esperar un rendimiento lento)Minimum requirements (expect slow performance)

DescripciónDescription Requisito mínimoMinimum requirement
CPUCPU Procesador de dos núcleos a 1,4 GHz de 64 bits o superior64-bit 1.4 GHz 2-core processor or better
RAMRAM 8 GB8 GB
Almacenamiento localLocal Storage Disco duro: 150 GB de espacio disponibleHard disk: 150 GB free space
Tarjeta de redNetwork card Conexión a Internet de alta velocidadHigh-speed Internet connection
Sistema operativoOperating system Windows Server 2008 R2Windows Server 2008 R2
Windows 7Windows 7
Windows 8 u 8.1Windows 8 or 8.1
.NET Framework 4.6.2.NET Framework 4.6.2
Componente redistribuible de Microsoft Visual C++ 2015Microsoft Visual C++ 2015 Redistributable Se necesita para la migración de OneNote.Required for OneNote migration.
PowerShellPowerShell PowerShell 5.0 o superior es necesario para permitir la migración de rutas de archivo de hasta 400 caracteres.PowerShell 5.0 or higher required to support migration of file paths of up to 400 characters.

Antes de empezarBefore you begin

  1. Aprovisione Microsoft 365 con su Active Directory existente o una de las otras opciones para agregar cuentas a Microsoft 365. Vea Integración de Microsoft 365 con entornos locales y Agregue los usuarios a las aplicaciones de Microsoft 365 para empresas para obtener más información.Provision your Microsoft 365 with either your existing active directory or one of the other options for adding accounts to Microsoft 365. See Microsoft 365 integration with on-premises environments and Add users to Microsoft 365 Apps for business for more information.

  2. Abra la carpeta:Open the folder:

    $env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell

    Asegúrese de que tiene DLLs en ellas. Si usa OneDrive, es posible que tenga que copiar la carpeta WindowsPowershell en OneDrive/documentos.Make sure you have DLLs inside of it, if you're using OneDrive you may need to copy the WindowsPowershell Folder into OneDrive / Documents.

  3. Desde esta ubicación, ejecute el siguiente comando de PowerShellFrom this location, run the following PowerShell command

    Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
    

Crear e inicializar una sesión de migraciónCreate and initialize a migration session

  • Register-SPMTMigrationRegister-SPMTMigration
    Este cmdlet crea e inicializa una sesión de migración. La inicialización configura la configuración de migración en el nivel de sesión. Si no se han definido parámetros de configuración específicos, se usará la configuración predeterminada. Después de registrarse una sesión, se puede agregar una tarea a esta y empezar la migración.This cmdlet creates and then initializes a migration session. The initialization configures migration settings at the session level. If no specific setting parameters are defined, default settings will be used. After a session is registered, you can add a task to the session and start migration.

Agregar una tarea de migraciónAdd a migration task

  • Add-SPMTTaskAdd-SPMTTask
    Use este cmdlet para agregar una nueva tarea de migración a la sesión de migración registrada. Actualmente, hay tres tipos diferentes de tareas permitidas: tarea de compartir archivos, tarea de SharePoint y tarea definida por JSON. Nota: No se admiten tareas duplicadas. Use this cmdlet to add a new migration task to the registered migration session. Currently there are three different types of tasks allowed: File share task, SharePoint task and JSON defined task. Note: Duplicate tasks are not allowed.

Quitar una tareaRemove a task

  • Remove-SPMTTaskRemove-SPMTTask
    Use este cmdlet para quitar una tarea de migración existente de la migración registrada.Use this cmdlet to remove an existing migration task from the registered migration.

Iniciar la migraciónStart your migration

Devolver el objeto de la sesión actualReturn the object of current session

  • Get-SPMTMigrationGet-SPMTMigration
    Devuelve el objeto de la sesión actual. Esto incluye el estado de las tareas actuales y la configuración del nivel de sesión actual. El estado actual de la tarea incluye: Return the object of the current session. This includes the status of current tasks and current session level settings. Current task status includes:
    • Número de archivos analizadosCount of scanned files
    • Número de archivos migradosCount of migrated files
    • Los mensajes de error de migraciónAny migration error messages

Detener la migración actualStop your current migration

Mostrar la información de estado de la migración en la consolaShow your migration status details in the console

  • Show-SPMTMigrationShow-SPMTMigration
    Si la migración se inicia en modo NoShow , al ejecutar el cmdlet Show-SPMTMigration , se mostrará el Id. de tarea, la ubicación de origen de datos, la ubicación de destino y el estado de la migración en la consola. Si presiona CTRL+C, se volverá al modo NoShow. If you start the migration in NoShow mode, running the Show-SPMTMigration cmdlet will display the task ID, data source location, target location and migration status in the console. Pressing Ctrl+C will return to NoShow mode.

Eliminar la sesión de migraciónRemove the migration session

Ejemplos de escenariosSample Scenarios

Ejemplo 1: el administrador de TI agrega una tarea de SharePoint local e inicia la migración en segundo plano.Example 1: IT admin adds a SharePoint on-prem task and starts migration in the background.

#Define SharePoint 2013 data source#
$Global:SourceSiteUrl = "http://YourOnPremSite/"
$Global:OnPremUserName = "Yourcomputer\administrator"
$Global:OnPremPassword = ConvertTo-SecureString -String "OnPremPassword" -AsPlainText -Force
$Global:SPCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Global:OnPremUserName, $Global:OnPremPassword
$Global:SourceListName = "SourceListName"

#Define SharePoint target#
$Global:SPOUrl = "https://contoso.sharepoint.com"
$Global:UserName = "admin@contoso.onmicrosoft.com"
$Global:PassWord = ConvertTo-SecureString -String "YourSPOPassword" -AsPlainText -Force
$Global:SPOCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Global:UserName, $Global:PassWord
$Global:TargetListName = "TargetListName"

#Define File Share data source#
$Global:FileshareSource = "YourFileShareDataSource"

#Import SPMT Migration Module#
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell

#Register the SPMT session with SharePoint credentials#
Register-SPMTMigration -SPOCredential $Global:SPOCredential -Force

#Add two tasks into the session. One is SharePoint migration task, and another is File Share migration task.#
Add-SPMTTask -SharePointSourceCredential $Global:SPCredential -SharePointSourceSiteUrl $Global:SourceSiteUrl  -TargetSiteUrl $Global:SPOUrl -MigrateAll
Add-SPMTTask -FileShareSource $Global:FileshareSource -TargetSiteUrl $Global:SPOUrl -TargetList $Global:TargetListName

#Start Migration in the console. #
Start-SPMTMigration

Ejemplo 2: el administrador de TI desea traer la migración del "modo NoShow" en segundo plano a primer plano y ejecutar el siguiente cmdlet para que pueda ver el progreso de la migración en la consola.Example 2: IT admin wants to bring the migration from the background "NoShow mode" to the foreground, run below the cmdlet, so he can see the migration progress in the console.

Show-SPMTMigration

Ejemplo 3: un administrador de TI quiere realizar una migración masiva cargando un archivo .csv.Example 3: IT Admin wants to do a bulk migration by loading a .csv file. El archivo de muestra en este ejemplo es SPMT.csv.The sample file in this example is SPMT.csv.

Load CSV;
$csvItems = import-csv "C:\spmt.csv" -Header c1,c2,c3,c4,c5,c6
ForEach ($item in $csvItems)
{
    Write-Host $item.c1
    Add-SPMTTask -FileShareSource $item.c1 -TargetSiteUrl $item.c4 -TargetList $item.c5 -TargetListRelativePath $item.c6
}

Hay dos tareas de migración definidas en el archivo de spmt.csv.Two migration tasks are defined in the file of spmt.csv.

D:\MigrationTest\Files\Average_1M\c,,,https://SPOSite.sharepoint.com,Documents,Test
C:\work\Powershell\negative,,,https://SPOSite.sharepoint.com/,Documents,DocLibrary_SubfolderName

Fragmentos de código para la migración masiva cargando un archivo JSON:Code snippets for bulk migration by loading one JSON file:

#Load JSON:
$jsonItems = Get-Content -Raw -Path  "C:\spmt.json" | ConvertFrom-Json
ForEach ($taskItem in $jsonItems.Tasks)
{
    $jsonString = ConvertTo-Json $taskItem -Depth 100
    Add-SPMTTask -JsonDefinition $jsonString -SharePointSourceCredential $onpremCredential
}

Hay tres tareas de migración definidas en el archivo de spmt.json.Three migration tasks are defined in the file of spmt.json.

{
   "Tasks":[
      {
         "SourcePath":"http://On-prem/sites/test",
         "TargetPath":"https://YourSPO.sharepoint.com",
         "Items":{
            "Lists":[
               {
                  "SourceList":"list-01",
                  "TargetList":"list-01"
               }
            ],
            "SubSites":[

            ]
         }
      },
      {
         "SourcePath":"http://On-prem/sites/test",
         "TargetPath":"https://YourSPO.sharepoint.com",
         "Items":{
            "Lists":[
               {
                  "SourceList":"list-02",
                  "TargetList":"list-02"
               }
            ],
            "SubSites":[

            ]
         }
      },
      {
         "SourcePath":"http://On-prem/sites/test",
         "TargetPath":"https://YourSPO.sharepoint.com",
         "Items":{
            "Lists":[
               {
                  "SourceList":"doclib-01",
                  "TargetList":"doclib-01"
               }
            ],
            "SubSites":[

            ]
         }
      }
   ]
}