SharePoint Online: PowerShell para cargar la página maestra
Requisito: Cargar la página maestra en SharePoint Online.
¿Cómo agregar una página maestra a SharePoint Online?
Para agregar una página maestra a SharePoint Online, haga lo siguiente:
- Inicie sesión en su sitio de SharePoint Online >> Haga clic en Configuración >> Configuración del sitio
En la página Configuración del sitio, haga clic en "Páginas maestras" en Galerías de diseñadores web. Esta biblioteca es similar a cualquier otra biblioteca de documentos.
Haga clic en el enlace "Cargar documento", busque y ubique su página maestra personalizada y complete la carga.
- Una vez cargada, puede cambiar la página maestra desde la interfaz de usuario web de SharePoint o PowerShell.
PowerShell para cargar la página maestra en SharePoint Online
Este script de PowerShell obtiene la página maestra de la ubicación especificada y la carga en SharePoint Online.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Function Upload-CustomMasterPage()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $MasterPageLocation
)
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the Web
$Web = $Ctx.web
$Ctx.Load($Web)
#Get the Master Page Gallery
$MasterPageGallery = $Web.Lists.GetByTitle("Master Page Gallery")
$Ctx.Load($MasterPageGallery)
$Ctx.ExecuteQuery()
#Get the Master page from given local location
$MasterPageFile = Get-Item $MasterPageLocation
$MasterPageContent = [System.IO.File]::ReadAllBytes($MasterPageFile.FullName)
#Prepare the File to upload Master page Gallary
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $True
$FileCreationInfo.Content = $MasterPageContent
$FileCreationInfo.URL = $MasterPageFile.name
Write-host "Uploading Master Page to Site:"$SiteURL
#Upload the File to Master page Gallary
$MasterPage = $MasterPageGallery.RootFolder.Files.Add($FileCreationInfo)
$Ctx.ExecuteQuery()
#Check-Out and Check-In to create major version
$MasterPage.CheckOut()
$Ctx.ExecuteQuery()
$CheckIn = $MasterPage.CheckIn("Master Page Uploaded",[Microsoft.SharePoint.Client.CheckinType]::MajorCheckIn)
$Ctx.ExecuteQuery()
Write-Host "Master Page '$MasterPageFile' Uploaded to site '$SiteURL'" -f Green
<#Process subsites - Call the function recursively
$Ctx.Load($Web.Webs)
$Ctx.ExecuteQuery()
If($Web.Webs.Count -gt 0)
{
Foreach ($web in $Web.Webs)
{
Upload-CustomMasterPage -SiteURL $web.Url -MasterPageLocation $MasterPageLocation
}
}#>
}
Catch {
write-host -f Red "Error Uploading Custom Master Page!" $_.Exception.Message
}
}
#Set parameter values
$SiteURL="https://crescent.sharepoint.com/sites/sales/"
$MasterPageLocation="C:\Deployment\Crescent.master"
#Setup Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Call the function to change master page
Upload-CustomMasterPage -SiteURL $SiteURL -MasterPageLocation $MasterPageLocation
Tenga en cuenta que este script carga la página maestra solo en la URL del sitio proporcionada. Si desea cargar la página maestra en todos los subsitios que se encuentran debajo, descomente las líneas. Una vez cargada la página maestra, puede usar este otro artículo para aplicar la página maestra en SharePoint Online: ¿Cómo configurar una página maestra personalizada en SharePoint Online usando PowerShell?
SharePoint Online: implementar una página maestra personalizada mediante PnP PowerShell
Aquí está el PnP PowerShell para cargar la página maestra en SharePoint Online:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
$MasterPagePath = "C:\Users\salaudeen\Downloads\CrescentV2.master"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Upload Master page to SharePoint Online site
Add-PnPMasterPage -SourceFilePath $MasterPagePath -Title "CrescentV2" -Description "Crescent V2 Master Page" -DestinationFolderHierarchy "CrescentV2"

