Create Publishing Page using Custom PageLayout by PowerShell Script in SharePoint 2013
we need to create some huge numbers of pages based on a Custom PageLayout in our Site Collection. For that, I was planning to write a PowerShell with some configuration values. So that, on the execution, the script will create those pages.
# Add the PowerShell Snapin
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if ($snapin -eq $null)
{
Add-PSSnapin "Microsoft.SharePoint.Powershell"
}
# Get the SiteURL
$SiteUrl = "https://MySiteCollectionURL"
# Get the WebURL
$WebUrl = "https://MyWebURL"
# Get the PageLayout
$PageLayoutRelUrl = "/_catalogs/masterpage/CustomPageLayout.aspx"
# Get the Page URL
$PageName = "Test.aspx"
# Get the Title of the Page which is going to get created
$PageTitle = "Test"
# Initialize the Site Object
$Site = Get-SPSite($SiteUrl)
# Get the Publishing Site based on the SPSite
$PubSite = New-Object Microsoft.SharePoint.Publishing.PublishingSite($Site)
# Get the SPWeb Object
$Web = Get-SPWeb $WebUrl
# Initialize the PublishingWeb based on the SPWeb
$PubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($Web)
# Get the PageLayouts Installed on the Publishing Site
$Layouts = $PubSite.GetPageLayouts($False)
# Get our PageLayout
$PageLayout = $Layouts[$PageLayoutRelUrl]
# Create a new publishing page.
$Page = $PubWeb.AddPublishingPage($PageName, $PageLayout)
# Assign the Title for the Page
$Page.Title = $PageTitle
# Update the Page
$Page.Update();
# Check in the Page with Comments
$Page.CheckIn("Test Comment")
# Publish the Page With Comments
$Page.ListItem.File.Publish("Test Publish Comment")
we need to create some huge numbers of pages based on a Custom PageLayout in our Site Collection. For that, I was planning to write a PowerShell with some configuration values. So that, on the execution, the script will create those pages.
# Add the PowerShell Snapin
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if ($snapin -eq $null)
{
Add-PSSnapin "Microsoft.SharePoint.Powershell"
}
# Get the SiteURL
$SiteUrl = "https://MySiteCollectionURL"
# Get the WebURL
$WebUrl = "https://MyWebURL"
# Get the PageLayout
$PageLayoutRelUrl = "/_catalogs/masterpage/CustomPageLayout.aspx"
# Get the Page URL
$PageName = "Test.aspx"
# Get the Title of the Page which is going to get created
$PageTitle = "Test"
# Initialize the Site Object
$Site = Get-SPSite($SiteUrl)
# Get the Publishing Site based on the SPSite
$PubSite = New-Object Microsoft.SharePoint.Publishing.PublishingSite($Site)
# Get the SPWeb Object
$Web = Get-SPWeb $WebUrl
# Initialize the PublishingWeb based on the SPWeb
$PubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($Web)
# Get the PageLayouts Installed on the Publishing Site
$Layouts = $PubSite.GetPageLayouts($False)
# Get our PageLayout
$PageLayout = $Layouts[$PageLayoutRelUrl]
# Create a new publishing page.
$Page = $PubWeb.AddPublishingPage($PageName, $PageLayout)
# Assign the Title for the Page
$Page.Title = $PageTitle
# Update the Page
$Page.Update();
# Check in the Page with Comments
$Page.CheckIn("Test Comment")
# Publish the Page With Comments
$Page.ListItem.File.Publish("Test Publish Comment")