Here is the simple and efficient PS script to update the page layout of a page, if you have both page and layout urls.
While changing the page layout of a publishing page in SharePoint, make sure that the page is of the same content type that is associated with the page layout.
While changing the page layout of a publishing page in SharePoint, make sure that the page is of the same content type that is associated with the page layout.
#Add sharepoint snapin
Remove-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue
Add-PSSnapin Microsoft.SharePoint.Powershell
#Get publishing web, site and page
$spWeb = Get-SPWeb("http://sampleweb.com")
$pWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($spWeb)
$pSite = New-Object Microsoft.SharePoint.Publishing.PublishingSite($spWeb.Site);
$pubPage = $pWeb.GetPublishingPage("http://sampleweb.com/Pages/testpage.aspx")
#Get page layout
$siteLayouts = $pSite.GetPageLayouts($false)
$myLayout = $siteLayouts["/_catalogs/masterpage/mylayout.aspx"]
#Update page layout of a page
$pubPage.CheckOut()
$pubPage.Layout = $myLayout
$pubPage.ListItem.Update()
$pubPage.CheckIn("Updated page layout via PowerShell")
$spWeb.Dispose()
No comments:
Post a Comment