Skip to main content

Copying Footers Between SharePoint Sites Using PnP PowerShell

Recently, I have been extensively working with SharePoint and the Patterns and Practices (PnP) PowerShell module. PnP has significantly simplified various tasks by providing easy-to-use command sets and thorough documentation. One particular task that PnP has made straightforward is copying a footer from one SharePoint site to another. This process can be achieved with just a few commands.

Why Use PnP PowerShell?

PnP PowerShell is a set of cmdlets designed to work with SharePoint Online and SharePoint on-premises. It simplifies the management and automation of common tasks and provides commands for nearly every aspect of SharePoint administration. The PnP module is especially useful for tasks that would otherwise require complex scripting or manual intervention.

Copying a Footer with PnP PowerShell

To copy a footer from one SharePoint site to another, follow these steps. This process involves exporting the footer template from the source site in XML format and then applying it to the destination site. The good news is that this also takes care of any logos included in the footer section.

Prerequisites

Ensure you have the PnP PowerShell module installed. If you haven't installed it yet, you can do so using the following command:

Install-Module -Name PnP.PowerShell

Step-by-Step Guide

  1. Prompt for Source and Destination URLs:

    Begin by prompting for the source and destination site URLs. These URLs are required to connect to the respective SharePoint sites.

  2. Connect to the Source Site:

    Use the Connect-PnPOnline cmdlet to authenticate and connect to the source site.

  3. Export the Footer Template:

    Use the Get-PnPSiteTemplate cmdlet to export the footer template from the source site and save it as an XML file.

  4. Connect to the Destination Site:

    Authenticate and connect to the destination site using the Connect-PnPOnline cmdlet.

  5. Apply the Footer Template:

    Use the Invoke-PnPSiteTemplate cmdlet to apply the exported footer template to the destination site.

Here is how the script looks:

$sourceURL = Read-Host "Enter Source Site URL"
$DestinationURL = Read-Host "Enter Destination Site URL"

Connect-PnPOnline -Url $sourceURL -Interactive
Get-PnPSiteTemplate -Handlers SiteFooter -Out footer.xml

Connect-PnPOnline -Url $DestinationURL -Interactive
Invoke-PnPSiteTemplate -path footer.xml

Explanation of Commands

  • Read-Host "Enter Source Site URL": Prompts the user to enter the URL of the source SharePoint site.
  • Read-Host "Enter Destination Site URL": Prompts the user to enter the URL of the destination SharePoint site.
  • Connect-PnPOnline -Url $sourceURL -Interactive: Connects to the source site using an interactive login.
  • Get-PnPSiteTemplate -Handlers SiteFooter -Out footer.xml: Exports the footer template from the source site and saves it as footer.xml.
  • Connect-PnPOnline -Url $DestinationURL -Interactive: Connects to the destination site using an interactive login.
  • Invoke-PnPSiteTemplate -path footer.xml: Applies the exported footer template to the destination site.

Conclusion

With the help of PnP PowerShell, copying footers between SharePoint sites is a quick and efficient process. By following the steps outlined above, you can ensure that your SharePoint sites maintain a consistent footer design, including logos and other elements.

For more details and possible parameters for the commands, refer to the PnP documentation.

Happy SharePointing!

Regards,
Keyur Pandya
Connect with me on LinkedIn.

Comments

Popular posts from this blog

Identity client runtime library (IDCRL) did not get a response from the login server.

Recently I was doing some testing with a background PowerShell and encountered a weird error. “Identity client runtime library (IDCRL) did not get a response from the login server”. The error that you might encounter while working with PowerShell. This error is very misleading when it comes to identifying what could go wrong. After doing quite a good amount of research below are the probable causes for the error. Invalid Credentials MFA (Multi-Factor Authentication) Manage security defaults. Solutions Invalid Credentials Check if your credentials are wrong. Especially if you are using variables. MFA (Multi-Factor Authentication) Check if MFA is enabled on the account which you are using. These only affect you badly if you are developing PowerShell for a background Job. Go to Microsoft 365 admin center Users -> Active users -> Select the user -> Manage multifactor authentication -> Select the user -> Disable multi-factor authentication. M

Business Data Connectivity

I came to a requirement wherein I was supposed to get data from an 3 rd party portal using API’s and then bring them to SharePoint server. The first approach that I finalized was just to make BDC solution that will get data from 3 rd party portal and will deploy it to SharePoint. How to Create BDC solution in SharePoint? I found below link that is having really great description about hot to create and deploy the BDC solution to SharePoint. http://www.c-sharpcorner.com/uploadfile/hung123/creating-business-data-connectivity-service-using-visual-studio-2010/ After creating an POC I came to know that BDC model cannot be deployed on Multi tenant farm. So what can be done next? After some amount of googling I came to know that we can create BDC solution using WCF services also. So I created a WCF service solution that acted as a wrapper that used to fetch data from the portal. We can them publish that service to IIS or Server and use the service referen

New-PnPTenantSite: The remote server returned an error: (401) Unauthorized.

New-PnPTenantSite: The remote server returned an error: (401) Unauthorized. Recently I was working on automate SharePoint site provisioning PnP script. We wanted to schedule this script to auto trigger on hourly basis, so we scheduled the script. As the script was to be scheduled one, we started creating SharePoint Apps to manage authentication. Register SharePoint Add-ins Go to <site collection url>/_layouts/15/AppRegNew.aspx by using a web browser. AppRegNew page form Enter values for the follow form fields: Add-in ID . Also known as client ID; a GUID that can be generated (when you select Generate ) or pasted into AppRegNew.aspx. The value must be unique for each add-in and must be lowercase .   Add-in Secret . Also known as the client secret, an opaque string. It is generated on the AppRegNew.aspx page by using the Generate button. Title:  A user-friendly title: for example, Contoso photo print