Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo trata sobre los cmdlets de PowerShell basados en el motor de migración de la Herramienta de migración de SharePoint (SPMT). Se pueden usar para mover archivos de bibliotecas de documentos y elementos de lista locales de SharePoint Server y recursos compartidos de archivos a Microsoft 365. Para obtener información sobre todos los cmdlets actuales de PowerShell relacionados con la migración de SharePoint, consulte la referencia de cmdlets de la herramienta de migración de Microsoft SharePoint.
Los cmdlets de PowerShell proporcionan las mismas funcionalidades que la Herramienta de migración de SharePoint.
Nota:
Estos cmdlets de PowerShell no están disponibles actualmente para los usuarios de Office 365 operados por 21Vianet en China.
Requisitos del sistema
Requisitos recomendados para lograr el mejor rendimiento
| Descripción | Recomendación |
|---|---|
| CPU | Procesador de 64 bits y 4 núcleos o superior |
| RAM | 16 GB |
| Almacenamiento local | Disco duro: 150 GB de espacio disponible |
| Sistema operativo | Windows Server 2025 Standard o Datacenter Windows Server 2022 Standard o Datacenter Windows Server 2019 Standard o Datacenter Windows Server 2016 Standard o Datacenter Windows Server 2012 R2 Standard o Datacenter Windows 10 o cliente 11 .NET Framework 4.6.2 |
| Componente redistribuible de Microsoft Visual C++ 2015 | Se necesita para la migración de OneNote. |
Importante
PowerShell 5.0x y .NET Framework 4.6.2 o posterior son necesarios para admitir la migración de rutas de archivo de hasta 400 caracteres.
Requisitos mínimos (es de esperar un rendimiento lento)
| Descripción | Requisito mínimo |
|---|---|
| CPU | Procesador de dos núcleos a 1,4 GHz de 64 bits o superior |
| RAM | 8 GB |
| Almacenamiento local | Disco duro: 150 GB de espacio disponible |
| Tarjeta de red | Conexión a Internet de alta velocidad |
| Sistema operativo | Windows Server 2008 R2 o 2012 Windows 7, 8 u 8.1 .NET Framework 4.6.2 |
| Componente redistribuible de Microsoft Visual C++ 2015 | Se necesita para la migración de OneNote. |
| PowerShell | Se requiere PowerShell 5.x para admitir la migración de rutas de archivos de hasta 400 caracteres. No se admite PowerShell 6.0 o superior. |
Solución alternativa para el problema de ruta de acceso larga
Al usar SPMT PowerShell, puede encontrar errores de examen en archivos de origen con rutas de acceso de más de 260 caracteres. Para resolver este problema, puede modificar el registro del sistema para permitir que PowerShell lea archivos de ruta de acceso larga.
Abra el Editor de registro, vaya a "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework", agregue una nueva clave "AppContext". A continuación, agregue 2 valores de cadena debajo de la clave.
Nombre del valor:
Switch.System.IO.BlockLongPathsInformación del valor:falseNombre del valor:
Switch.System.IO.UseLegacyPathHandlingInformación del valor:false
Antes de empezar
Aprovisione su Microsoft 365 con su Active Directory existente o con una de las otras opciones para agregar cuentas a Microsoft 365. Para obtener más información, consulte Integración de Microsoft 365 con entornos locales y Agregar usuarios a las Aplicaciones Microsoft 365 para empresas.
Abra la carpeta:
$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell. Asegúrese de que contiene DLL. Si usa OneDrive, debe copiar la carpeta WindowsPowershell en$env:UserProfile\OneDrive - <Organization Name>\Documents.Desde esta ubicación, ejecute el siguiente comando de PowerShell:
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
Crear e inicializar una sesión de migración
Este cmdlet crea y luego 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 definen parámetros de configuración específicos, se usará la configuración predeterminada. Después de registrar una sesión, puede agregar una tarea a la sesión e iniciar la migración.
Agregar una tarea de migración
Use este cmdlet para agregar una nueva tarea de migración a la sesión de migración registrada. Actualmente se permiten tres tipos diferentes de tareas: tarea de uso compartido de archivos, tarea de SharePoint y tarea definida por JSON.
Nota: No se permiten tareas duplicadas.
Quitar una tarea
Use este cmdlet para quitar una tarea de migración existente de la migración registrada.
Iniciar la migración
Este cmdlet inicia la migración de SPMT registrado.
Devolver el objeto de la sesión actual
Devuelve el objeto de la sesión actual. Este cmdlet incluye el estado de las tareas actuales y la configuración de nivel de sesión actual. El estado actual de la tarea incluye:
- Número de archivos analizados
- Número de archivos migrados
- Los mensajes de error de migración
Detener la migración actual
Este cmdlet cancela la migración actual.
Mostrar la información de estado de la migración en la consola
- Show-SPMTMigration
Si inicia la migración en modo NoShow , al ejecutar el cmdlet Show-SPMTMigration se muestra el identificador de tarea, la ubicación de origen de datos, la ubicación de destino y el estado de migración en la consola. Al seleccionar Ctrl+C, la pantalla vuelve al modo NoShow .
Eliminar la sesión de migración
Use este cmdlet para eliminar la sesión de migración.
Ejemplos de escenarios
Ejemplo 1: El administrador de TI agrega una tarea de SharePoint local e inicia la migración en segundo plano.
#Define SharePoint Server data source#
$SourceSiteUrl = "http://YourOnPremSite/"
$OnPremUserName = "Yourcomputer\administrator"
$OnPremPassword = ConvertTo-SecureString -String "OnPremPassword" -AsPlainText -Force
$SPCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $OnPremUserName, $OnPremPassword
$SourceListName = "SourceListName"
#Define SharePoint target#
$SPOUrl = "https://contoso.sharepoint.com"
$UserName = "admin@contoso.onmicrosoft.com"
$PassWord = ConvertTo-SecureString -String "YourSPOPassword" -AsPlainText -Force
$SPOCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $PassWord
$TargetListName = "TargetListName"
#Define file share data source#
$FileshareSource = "YourFileShareDataSource"
#Import SPMT Migration Module#
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
#Register the SPMT session with SharePoint credentials#
Register-SPMTMigration -SPOCredential $SPOCredential -Force
#Add two tasks into the session. One is SharePoint migration task, and another is File Share migration task.#
Add-SPMTTask -SharePointSourceCredential $SPCredential -SharePointSourceSiteUrl $SourceSiteUrl -TargetSiteUrl $SPOUrl -MigrateAll
Add-SPMTTask -FileShareSource $FileshareSource -TargetSiteUrl $SPOUrl -TargetList $TargetListName
#Start Migration in the console. #
Start-SPMTMigration
Ejemplo 2: El administrador de TI desea poner en primer plano la migración del "modo NoShow" en segundo plano y ejecutar el siguiente cmdlet para que se muestre el progreso de la migración en la consola.
Show-SPMTMigration
Ejemplo 3: El Administración de TI quiere realizar una migración masiva cargando un archivo .csv. El archivo de muestra en este ejemplo es 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.
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:
#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 $SPCredential
}
Hay tres tareas de migración definidas en el archivo de 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":[
]
}
}
]
}
Ejemplo 4: mostrar el progreso de la migración
Estos ejemplos muestran cómo visualizar el progreso del proyecto de migración. Get-SPMTMigration devuelve el objeto de la sesión actual Incluye el estado de las tareas actuales y la configuración de nivel de sesión actual.
El estado de las tareas actuales incluye:
- Recuento de archivos examinados.
- Recuento de archivos filtrados.
- Recuento de archivos migrados.
- Recuento de archivos con error.
- El progreso de la migración de la tarea actual (0 ~ 100).
- El estado actual de la tarea.
- Mensajes de error de migración, si los hay.
# Start migration in the background
Start-SPMTMigration -NoShow
# Get the object of current migration
$session = Get-SPMTMigration
# Query migration status every 5 seconds until migration is finished
while ($session.Status -ne "Finished")
{
Write-Host $session.Status
# Query migration progress of each tasks
Foreach ($taskStatus in $session.StatusOfTasks)
{
$taskStatus.MigratingProgressPercentage
}
Start-Sleep -Seconds 5
}