In SharePoint Online users can export a SharePoint site script template in XML form using PnP PowerShell. It is a reusable component if the user wants to create the same SharePoint site collection multiple times. PnP PowerShell is a powerful way to provision site artifacts in SharePoint online including site structure and its content.
Using the PnP Provisioning engine users can model a site by configuring the design of site columns, content types, list definition and instances, pages, and more via web browser. When users are done with the design templates, they can export that site template into a provisioning template format (XML, JSON, or a container format called a PnP file) and apply it to as many target sites as they want.
PnP PowerShell Version
It supports the latest version of PowerShell so make sure before starting to work that the user must install the latest version of PowerShell MSI Packages which is “PowerShell 7.3.9”, or the user can explore the below link to know the latest versions of PowerShell.
https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.3
Steps to Extract PnP Site Template
1. After installing PnP PowerShell, users can directly run the command on the PnP PowerShell Command window to extract the site template.
a. Search “PowerShell” and open as Administrator.
b. The user will get the administrator window as below snapshot.
c. If users have installed the SharePointPnPPowerShellOnline Module, then first uninstall this module by running the below command.
Uninstall-Module SharePointPnPPowerShellOnline -Force –AllVersions
d. Install the new PnP.PowerShell module by running the below command.
Install-Module PnP.PowerShell
e. Now user can extract the site script template by running the PnP PowerShell Command
2. The user can use Visual Studio code to extract the PnP site script template. By using Visual Studio code users can save export and import site script templates into PowerShell format (.ps1)
Example – TestScript.ps1
a. Install the PnP PowerShell extension on VS code.
b. To work on PnP PowerShell, choose the folder where the user wants to store all the files and scripts.
c. In VS Code user can also follow the above command to install the PnP PowerShell Module.
Steps to get the source site schema template into XML.
a. Create a new Config.json file in TestScriptTemplate folder to configure the site collection content, which means to configure the SharePoint list, library, and pages that the user wants to export.
b. Create a new PS file in the folder as TestScript.ps1 to write the export template command as given below.
1. Enter the source site address to $SiteURL Variable that the user wants to extract the templates.
2. Enter the config.json folder address in the configuration section.
3. Enter the file address where the user wants to store the extracted file.
FilePath\{EnterScriptTemplate Name.xml}
4. Run the command. It will extract the site template into XML form.
Steps to apply the site schema to the target site.
a. Create a new file PS file in the folder as ImportTestScript.ps1 to write the invoke site template command.
1. Enter the Destination site address to $SiteURL Variable that the user wants to invoke the templates.
2. Enter the Path of the extracted site template.
3. Run the command. It will apply the site template to the destination site collection.
To follow all the above steps user will be able to create the duplicate site template using PnP PowerShell.
Example-
Source SharePoint Site Collection
Destination SharePoint Site Collection
Please note, that the PnP Provisioning template method only extracts the site template without its contents. If users need to copy the site with its content, they need to do it with a PowerShell script creating the configuration file.
https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/configuring-the-pnp-provisioning-engine
Conclusion
Creating site designs and site scripts in SharePoint Online is a powerful way to automate the creation of customized sites and ensure consistency across the organization’s SharePoint environment. Site designs allow users to define a set of actions that will be performed when a new site is created, such as adding lists, pages, and web parts.
Site scripts allow users to define the structure and content of a new site, such as creating lists, libraries, and pages. By following these steps, users can easily create custom site designs and site scripts that can be used to create new sites in SharePoint Online with the desired structure content.