Cargar contenido local a SharePoint con los cmdlets de PowerShell
Nota:
La Herramienta de migración de SharePoint (SPMT) ayuda a simplificar el proceso de migración. SPMT proporciona una experiencia similar a un asistente para guiarle a través de la migración de sitios de equipo de SharePoint Server o recursos compartidos de archivos de red a Microsoft 365. Está disponible para todos los usuarios de Microsoft 365: Descargar SPMT.
Importante
La Herramienta de migración de SharePoint no está disponible actualmente para los usuarios de Office 365 ofrecido por 21Vianet en China.
Este artículo muestra cómo usar los cmdlets del PowerShell de Migración de SharePoint para migrar el contenido de un recurso compartido de archivos local a Microsoft 365.
Los cmdlets del PowerShell de migración de SharePoint están diseñados para mover contenido local de recursos compartidos de archivos. Necesitan llamadas del CSOM mínimas y usan el almacenamiento de blobs temporales de Azure para manejar grandes migraciones de datos.
Requisitos previos
Sistemas operativos compatibles:
- Windows 7 Service Pack 1
- Windows 8
- Windows Server 2008 R2 SP1
- Windows Server 2008 Service Pack 2
- Windows Server 2012, Windows Server 2012 R2
Windows PowerShell 4.0
Nota:
Permisos: debe ser un administrador de la colección de sitios en el sitio de destino.
Antes de empezar
Aprovisione su configuración de Microsoft 365 con su Active Directory existente o una de las otras opciones para agregar cuentas a Microsoft 365. Para más información, consulte Integración de Microsoft 365 con entornos locales y Agregar usuarios y asignar licencias al mismo tiempo.
Instalar el Shell de administración de SharePoint Online y configurar el directorio de trabajo.
Paso 1: Instalar el Shell de administración de SharePoint Online
Desinstale todas las versiones anteriores del Shell de administración de SharePoint Online.
Descargue e instale el Shell de administración de SharePoint Online.
Abra el Shell de administración de SharePoint Online y seleccione Ejecutar como administrador.
Paso 2: Configurar el directorio de trabajo
Antes de iniciar la migración, necesita configurar el directorio de trabajo con dos carpetas vacías. Estas carpetas no necesitan mucho espacio en disco, ya que solo contienen XML.
Cree una carpeta de paquete temporal.
Cree una carpeta de paquete final.
Paso 3: Determinar las ubicaciones y credenciales
Identifique las credenciales y las ubicaciones de los archivos de origen, los archivos de destino y la Web.
En el equipo local, abra el Shell de administración de SharePoint Online. Ejecute los siguientes comandos, pero inserte los valores:
$cred = (Get-Credential admin@contoso.com)
$sourceFiles = '\\fileshare\users\charles'
$sourcePackage = 'C:\migration\CharlesDocumentsPackage_source'
$targetPackage = 'C:\migration\CharlesDocumentsPackage_target'
$targetWeb = 'https://contoso-my.sharepoint.com/personal/charles_contoso_com'
$targetDocLib = 'Documents'
New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters
Paso 4: Crear un nuevo paquete de contenido a partir de un recurso compartido de archivos local
En este paso, se crea un nuevo paquete de migración a partir de un recurso compartido de archivos. Para crear un paquete de contenido a partir de un recurso compartido de archivos, el New-SPOMigrationPackage
comando lee la lista de contenido destinado a la ruta de acceso de origen y genera XML para realizar la migración.
Los siguientes parámetros son necesarios a menos que se marquen como opcionales:
SourcefilesPath: apunta al contenido que quiere migrar.
OutputPackagePath: apunta a la carpeta temporal.
TargetWebUrl: apunta al sitio web de destino.
TargetDocumentLibraryPath: apunta a la biblioteca de documentos en la Web.
IgnoreHidden: omite los archivos ocultos (opcional).
ReplaceInvalidCharacters: corrige caracteres inválidos cuando sea posible (opcional).
Ejemplo:
En el ejemplo siguiente se muestra cómo crear un paquete nuevo a partir de un recurso compartido de archivos. Omite los archivos ocultos y reemplaza los caracteres no compatibles en los nombres de archivos o carpetas.
New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters`
Paso 5: Convertir el paquete de contenido para el sitio de destino
Use el ConvertTo-SPOMigrationTargetedPackage
comando para convertir el SML generado en la carpeta temporal. Guarda un nuevo conjunto de archivos de metadatos del paquete de migración de destino en el directorio de destino. Este es el paquete final.
Nota:
Las credenciales de administrador de la colección de sitios de destino se usan para recopilar datos para conectarse a la colección de sitios de datos.
Hay seis parámetros que es necesario introducir (otros son opcionales):
ParallelImport: indica a la herramienta que optimice el rendimiento mediante subprocesos en paralelo.
SourceFiles: apunta a la ubicación del directorio donde se encuentran los archivos de contenido de origen del paquete.
SourcePackagePath: apunta a la carpeta de paquete temporal.
OutputPackagePath: apunta a la carpeta de paquete final.
Credentials: credencial de SharePoint que tiene derechos de administrador en el sitio de destino.
TargetWebUrl: URL de su Web de destino.
TargetDocumentLibraryPath: la ruta de acceso a la biblioteca de destino.
Ejemplo:
En este ejemplo se muestra cómo convertir un paquete en otro paquete dirigido mediante la búsqueda de datos en la colección de sitios de destino. El parámetro -ParallelImport se usa para incrementar el rendimiento de migración del recurso compartido de archivos.
$finalPackages = ConvertTo-SPOMigrationTargetedPackage -ParallelImport -SourceFilesPath $sourceFiles -SourcePackagePath $sourcePackage -OutputPackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib`
Paso 6: Enviar contenido para importar
En este paso, el comando Invoke-SPOMigrationEncryptUploadSubmit
crea un nuevo trabajo de migración en la colección de sitios de destino y, después, devuelve un GUID que representa el JobID. Este comando carga manifiestos y archivos de origen cifrados en el Azure Blob Storage temporal por cada trabajo.
Se deben especificar cuatro parámetros necesarios. Otros son opcionales.
TargetwebURL: apunta a la Web del destino.
SourceFilesPath: apunta a los archivos que se van a importar.
SourcePackagePath: apunta al manifiesto final de los archivos que se van a importar.
Credentials: las credenciales de SharePoint que tienen derechos de administrador de colección de sitios en el sitio de destino.
Ejemplo 1:
En este ejemplo se muestra cómo enviar los datos del paquete para crear un nuevo trabajo de migración.
$job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb
Ejemplo 2:
En este ejemplo se muestra cómo enviar los datos del paquete para crear nuevos trabajos de migración para la importación en paralelo.
$jobs = $finalPackages | % {Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $_.FilesDirectory.FullName -SourcePackagePath $_.PackageDirectory.FullName -Credentials $cred -TargetWebUrl $targetWeb}
Con cada trabajo enviado, el cmdlet Invoke
devuelve estas propiedades como parte de un trabajo:
JobId: el identificador del trabajo en SPO.
ReportingQueueUri: la cola de SharePoint Azure que almacena los mensajes de progreso en tiempo real de la migración.
Encryption: la clave de cifrado y el método usado para la carga del contenido en Azure. Esta clave es necesaria al descifrar los mensajes de la cola e importar los registros.
Si usa su propia cuenta de Azure Storage para cargar contenido en el almacenamiento, use Set-SPOMigrationPackageAzureSource y Submit-SPOMigrationJob.
Importante
Si decide usar Azure Storage, podría suponer cargos de ancho de banda. El cargo dependería de su tipo de oferta de Azure y el tamaño de la migración. Para precios generales, consulte precios de ancho de banda.
(Opcional)Paso 7 : Procesar y supervisar la migración de SharePoint
Después de que se envíe el trabajo, solo Azure y SharePoint interactúan para capturar y migrar el contenido al destino. Este proceso depende del trabajo de temporizador, lo que significa que está en una cola basada en el orden de llegada. Este proceso no impide que la misma persona ponga en cola otros trabajos.
Si no se están ejecutando otros trabajos, es posible que se produzca un retraso de 1 minuto.
Comprobar el estado del trabajo
Para comprobar el estado del trabajo, use la EncryptionKey devuelta en el paso 6 para ver las actualizaciones en tiempo real que se publican en la cuenta de Azure Storage.
Ver registros
Si usa su propia cuenta de Azure Storage, puede ver registros de todo lo que ha sucedido en el contenedor del manifiesto de Azure Storage. En esta fase, es seguro eliminar los contenedores si no quiere guardarlos como copia de seguridad en Azure.
Si se han producido errores o advertencias, se crean archivos .err o .won en el contenedor del manifiesto.
Si usa la instancia temporal de Azure Storage creada por Invoke-SPOMigrationEncryptUploadSubmit en el paso 6, puede obtener la dirección URL de SAS del registro de importación descifrando el mensaje de cola de Azure con el valor "Event" JobLogFileCreate. Puede usar la dirección URL SAS del registro de importación para descargar el archivo de registro y descifrarlo con la misma clave de cifrado devuelta en el paso 6.
Escenarios de scripting para su reutilización
Use el siguiente script de ejemplo. Incluye los pasos de determinación de las ubicaciones y credenciales, envío de los datos del paquete y creación de un trabajo de migración.
$userName = "admin@contoso.onmicrosoft.com"
$sourceFiles = "d:\data\documents"
$packagePath = "d:\data\documentPackage"
$spoPackagePath = "d:\data\documentPackageForSPO"
$targetWebUrl = "https://contoso.sharepoint.com/sites/finance"
$targetLibrary = "Documents"
$cred = Get-Credential $userName
New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $packagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -IgnoreHidden -ReplaceInvalidCharacters
Convertir un paquete en otro paquete dirigido mediante la búsqueda de datos en la colección de sitios de destino
$finalPackages = ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles -SourcePackagePath $packagePath -OutputPackagePath $spoPackagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -Credentials $cred
Enviar los datos del paquete para crear el trabajo de migración
$job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $spoPackagePath -Credentials $cred -TargetWebUrl $targetWebUrl
This sample shows how to get the returned information of a job, which comes in the form of a GUID.
```powershell
$job = $jobs[0]
$job.JobId
Guid
----
779c4b3b-ec24-4705-bb58-c38f4329418c
En este ejemplo se muestra cómo obtener $job.ReportingQueueURi.AbosoluteUri.
# To obtain the $job.ReportingQueueUri.AbsoluteUri
https://spodm1bn1m013pr.queue.core.windows.net/953pq20161005-f84b9e51038b4139a179f973e95a6d6f?sv=2014-02-14&sig=TgoUcrMk1Pz8VzkswQa7owD1n8TvLmCQFZGzyV7WV8M%3D&st=2016-10-04T07%3A00%3A00Z&se=2016-10-26T07%3A00%3A00Z&sp=rap
En este ejemplo se muestra cómo obtener la clave de cifrado y el ejemplo devuelto.
$job.Encryption
EncryptionKey EncryptionMethod
----------------------- ------------------
{34, 228, 244, 194...} AES256CBC
Importante
Todos los mensajes se cifran en la cola. Para leer de la ReportingQueue, debe tener el valor de EncryptionKey.
Procedimientos recomendados y limitaciones
Descripción | Recomendación |
---|---|
Tamaño del paquete | 10-20 GB Use el modificador -ParallelImport para la migración de recursos compartidos de archivos, que divide automáticamente el paquete grande en otros más pequeños. |
Tamaño de archivos |
2 GB |
Tamaño de destino |
Debería impedirse el acceso de los usuarios al sitio de destino hasta que se complete la migración |
Límites de SharePoint |
Límites de servicio en SharePoint para Microsoft 365 |
Límites de Azure
Recurso | Predeterminado/Límite |
---|---|
TB por cuenta de almacenamiento |
500 |
Tamaño máximo de un contenedor de blobs, tabla o cola. |
500 |
Número máximo de contenedores de blobs, blobs, recursos compartidos de archivos, tablas, colas, entidades o mensajes por cuenta de almacenamiento. |
El único límite es la capacidad de 500 TB de la cuenta de almacenamiento. |
Rendimiento de destino de un solo blob |
Hasta 60 MB o 500 solicitudes por segundo. |