¿Cómo copiar un sitio en SharePoint Online usando PowerShell?
Requisito: Copiar un subsitio en SharePoint Online usando la plantilla de aprovisionamiento PnP.
Las plantillas de sitio son una excelente manera de crear una "plantilla" y crear una copia de un sitio, incluida su estructura y contenido. Sin embargo, Microsoft ha eliminado la función "Guardar como plantilla" en las plantillas de sitios modernos y en los sitios de equipo o de comunicación asociados a grupos. Entonces, ¿cómo hacer una copia de un sitio en SharePoint Online?
¿Cómo copiar una colección de sitios en SharePoint Online usando PowerShell?
PnP PowerShell es una forma eficaz de aprovisionar artefactos del sitio en SharePoint Online. Podemos usarlo para duplicar un subsitio y ahora usémoslo para copiar un subsitio usando la plantilla de aprovisionamiento PnP.
- Paso 1: conéctese al sitio fuente y obtenga su esquema
- Paso 2: cree un nuevo subsitio
- Paso 3: importar el esquema al sitio de destino
Paso 1: Obtenga el esquema XML del sitio de origen
Cree su sitio utilizando la interfaz de usuario de SharePoint y realice la personalización necesaria. Una vez que el sitio esté listo para usarse como plantilla, conéctese al sitio de origen y obtenga el esquema del sitio en formato XML mediante el cmdlet Get-PnPSiteTemplate.
#Set variables
$SiteURL = "https://crescent.sharepoint.com/sites/projects/london"
$SchmaXMLPath = "C:\Temp\SiteSchema.xml"
#Connect to PnP Online
Connect-PnPOnline -Url $siteUrl -Interactive
#Get Site Schema
Get-PnPSiteTemplate -Out ($SchmaXMLPath) -PersistBrandingFiles -PersistPublishingFiles
Este cmdlet obtiene todos los artefactos del sitio de origen, como tipos de contenido, columnas del sitio, almacén de términos, listas y bibliotecas, temas, páginas, etc., en el archivo XML de plantilla proporcionado. También tenemos un modificador -includesitegroups para incluir la seguridad del sitio para que su sitio de destino tenga permisos únicos.
Paso 2: crear una nueva colección de sitios o un subsitio
Cree un nuevo subsitio con la misma plantilla que el sitio de origen.
#Set variables
$SiteURL = "https://crescent.sharepoint.com/sites/projects"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Create a new subsite
$NewWeb = New-PnpWeb -Title "Project Morocco" -Url "morocco" -Description "Team Site for Morocco Project" -Locale 1033 -Template "STS#3"
El siguiente paso es obtener el sitio de destino y aplicarle la plantilla. El archivo XML exportado se puede aplicar a cualquier otro sitio para convertirlo en una copia del sitio original.
Paso 3: aplicar el esquema del sitio en el sitio de destino con Invoke-PnPSiteTemplate
Una vez creado el subsitio, aplíquelo al sitio de origen y obtenga el esquema del sitio en formato XML.
#Set variables
$SiteURL = "https://crescent.sharepoint.com/sites/projects/morocco"
$SchmaXMLPath = "C:\Temp\SiteSchema.xml"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Apply Pnp Provisioning Template
Invoke-PnPSiteTemplate -Path $SchmaXMLPath -ClearNavigation
Tenga en cuenta que el método de plantilla de aprovisionamiento PnP solo extrae la plantilla del sitio sin su contenido. Si necesita copiar el sitio con su contenido, debe hacerlo con scripts de PowerShell o con cualquier herramienta de migración. Además, no puede extraer la plantilla de sitio de un sitio raíz y aplicarla en subsitios. Aquí está la documentación de aprovisionamiento de PnP: https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/pnp-provisioning-framework
