Save SharePoint List as template and create new one
SharePoint list (SPList) has grown up to immense size and started to decrease performance. To solve this, I decided to cut this SPList to pieces – to create archives and save items there by year.
I had to make three operations:
1. Save SharePoint list as template without data
2. Create lists from template with custom names
3. Move items from one list to another
Moving items is a specific tool and there are many ways to move items. I will describe it a bit later. But now here are two script – how to save SPList as template and how to create a new one from template.
Save list as template
#Save SharePoint list as template
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
#Configuration parameters
$WebURL="https://sharepoint/site/spweb/"
$ListName="ListName"
$TemplateName="ListTemplateName"
$TemplateFileName="ListTemplateFileName"
$TemplateDescription="List Template Description"
$SaveData = $False #($True - save data, $False - do not save data )
#Get the Web and List objects
$Web = Get-SPWeb $WebURL
$List = $Web.Lists[$ListName]
#Save List as Template
$List.SaveAsTemplate($TemplateFileName, $TemplateName, $TemplateDescription, $SaveData)
Write-Host "List Saved as Template!"
Create SharePoint list from template
#Create SharePoint list from template
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
#Configuration parameters
$siteUrl = https://sharepoint/
$WebURL= https://sharepoint/site/spweb/
$site = Get-SPSite $siteUrl
$Web = Get-SPWeb $WebURL
$ListName="List Name"
$ListURL="listname"
$listTemplates = $site.GetCustomListTemplates($Web)
$templateList = $listTemplates['ListTemplateFileName']
$Web.Lists.Add($ListURL, $ListName, $templateList)

Pipeline sequence in PowerShell