Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Add PowerShell Snapin
- $snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
- if ($snapin -eq $null)
- {
- Add-PSSnapin "Microsoft.SharePoint.Powershell"
- }
- # Get the Site URL
- $SiteUrl = "https://MySiteCollectionURL/"
- # Get the Web URL
- $WebUrl = "https://MyWebSiteURL"
- # Get the Page on which WE are going to Add the WebPart
- $PageName = "Test.aspx"
- # The location of the WEbPart Definition File
- $localWebpartPath = "C:WebPartsMyWebPart.webpart"
- # Error Message which is required as a Reference Parameter while Importing the WEbPart
- $errorMsg = "Test Error Message"
- # Initializing the SPSite Object
- $Site = Get-SPSite($SiteUrl)
- # Get an instance for Publishing Site based on SPSite
- $PubSite = New-Object Microsoft.SharePoint.Publishing.PublishingSite($Site)
- # Get the SPWEb Object
- $Web = Get-SPWeb $WebUrl
- # Get the Publishing Web Based on the SPWeb Object
- $PubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($Web)
- # The below commented line is to get all the Pages
- #$PubWeb.GetPublishingPages($PageName);
- # Get only our Page
- $PublishingPage = $PubWeb.GetPublishingPage("https://MyWebURL/Pages/Test.aspx");
- # Make the Web as AllowUnSafeUpdates as true
- $Web.AllowUnsafeUpdates = $true
- # Checkout the Publishing Page
- $PublishingPage.CheckOut();
- # Get the LimitedWEbPartManager
- $limitedWebPartManager = $PublishingPage.ListItem.File.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared);
- # Initialize the XmlReaderSettings Object which is required for the XmlReader Object
- $xmlReaderSettings = New-Object System.Xml.XmlReaderSettings
- # Create the XmlReader Object by using the WebPart Definition file and the ReaderSettings Object
- $xmlReader = [System.Xml.XmlReader]::Create($localWebpartPath,$xmlReaderSettings);
- #Add Web Part to catalogs folder and Get the WebPart Definition Object based on the webpart definition xml file
- $oWebPartDefinition = $limitedWebPartManager.ImportWebPart($xmlReader,[ref]$errorMsg);
- # Add the WebPart to the WebPartManager by specifing the Zone and the Index.
- $limitedWebPartManager.AddWebPart($oWebPartDefinition,"RightZone",1);
- # Checkin the Publishing Page
- $PublishingPage.CheckIn("Checkin");
- # Publish the Page
- $PublishingPage.ListItem.File.Publish("Publish");
- # Revert the AllowUnsafeUpdates to False once we are done.
- $Web.AllowUnsafeUpdates = $false
- # I was trying to Approve the Page. But, if the Approve is enabled on the Pages Library level,
- # then only we can do that. Otherwise we cannot. But the Syntax is correct as below.
- # $PageListItem.File.Approve("Page approved automatically by PowerShell script")
- - See more at: http://www.sharepointpals.com/post/How-to-Add-WebPart-to-the-Publishing-Page-using-PowerShell-in-SharePoint-2013#sthash.xcdNmxZv.dpuf
Add Comment
Please, Sign In to add comment