SharePoint Online: copiar lista o biblioteca de documentos a otro sitio usando PnP PowerShell
Requisito: Copie la biblioteca de documentos a otro sitio usando PowerShell.
SharePoint Online: copiar biblioteca de documentos a otro sitio usando PnP PowerShell
El motor de aprovisionamiento PnP nos permite copiar objetos del sitio, como listas y bibliotecas, columnas del sitio, tipos de contenido, apariencias compuestas, páginas, etc. Podemos exportar la personalización existente a un archivo XML y usarlo como plantilla para crear nuevos objetos a partir de él. Podemos copiar listas y bibliotecas entre colecciones de sitios de SharePoint Online con la ayuda de PnP Provisioning Engine. Aquí está el script de PowerShell:
Utilice el método de plantilla de aprovisionamiento PnP para copiar una lista
Paso 1: obtener el esquema de lista del sitio de origen
Con el motor de aprovisionamiento PnP, primero debemos extraer el esquema de lista:
#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/"
$ListName = "Project Tasks"
$TemplateFile = "C:\Temp\ListSchema.xml"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Get the List schema as Template and export to a File
$Templates = Get-PnPSiteTemplate -OutputInstance -Handlers Lists
$ListTemplate = $Templates.Lists | Where-Object { $_.Title -eq $ListName }
$Templates.Lists.Clear()
$Templates.Lists.Add($ListTemplate)
Save-PnPSiteTemplate -InputInstance $Templates -Out $TemplateFile
Este script crea un archivo de plantilla XML que contiene todos los esquemas de lista del sitio de SharePoint Online y luego filtra para obtener la lista específica.
Paso 2: aplicar la plantilla al sitio de destino
Una vez que tengamos listo el archivo XML de la plantilla, podemos importarlo a cualquier colección de sitios, como:
#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Operations/"
$TemplateFile = "C:\Temp\ListSchema.xml"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
Write-Host "Creating List from Template..."
Invoke-PnPSiteTemplate -Path $TemplateFile
Este script de PowerShell copia la lista o biblioteca de documentos del sitio de origen a la colección de sitios de destino.
Si desea copiar elementos de lista entre listas, utilice: ¿Cómo copiar elementos de lista entre listas en SharePoint Online usando PowerShell?
Copiar la estructura de la lista utilizando diseños y scripts del sitio
A continuación se explica cómo puede copiar la estructura de la lista utilizando el diseño del sitio y scripts con PowerShell:
#Define Parameters
$AdminCenterURL = "https://crescent-admin.sharepoint.com"
$ListURL = "https://crescent.sharepoint.com/sites/marketing/Lists/Source"
$TargetSiteURL = "https://crescent.sharepoint.com/sites/procurement/"
#Connect to SharePoint Online
Connect-SPOService -Url $AdminCenterURL -credential (Get-Credential)
#Get the list schema
$ListSchema = Get-SPOSiteScriptFromList -ListUrl $ListURL
#Add list schema as Site Script
$SiteScript = Add-SPOSiteScript -Title "Project Tasks List" -Content $ListSchema
#Create a Site Design
$SiteDesign = Add-SPOSiteDesign -Title "Provision Project Tasks List" -WebTemplate 64 -SiteScripts $SiteScript.Id
#Apply Site Design to site
Invoke-SPOSiteDesign -Identity $SiteDesign.Id -WebUrl $TargetSiteURL
Alternativamente, puede utilizar “Crear una lista a partir de una lista existente” o métodos de PowerShell para copiar una lista o biblioteca de documentos a otro sitio. ¿Cómo copiar una lista a otro sitio en SharePoint Online?