Tuesday, September 17, 2013

How to export and import lists and libraries from a SharePoint 2010 site using Powershell

Let’s imagine this scenario:
You have an old SharePoint 2010 site and you need to copy its content to another SharePoint farm.  The site is heavily customized and moving it using traditional methods (backup/restore, export/import, save site as a template) are not going to work well.  Plus you only want content – no need to bring in all of that custom branding baggage.
You can copy the content using PowerShell and two scripts shown below.

Script # 1:   Export all lists and libraries from the source site.
add-pssnapin microsoft.sharepoint.powershell
 
# specify the site URL to export
 
 
# specify output folder to store exported lists
 
$path = "c:\admin\export\"
 
foreach($list in $web.lists)
 
{
 
"Exporting " + $list.RootFolder.URL
 
export-spweb $web.URL -ItemUrl $list.RootFolder.URL -IncludeUserSecurity -IncludeVersions All -path ($path + $list + ".cmp") -nologfile

}
 
The output of this script should be a number of CMP files in the output directory.  Review these files and remove the lists that should not be imported (such as various Gallery lists).

Script # 2:  Import CMP files into the destination site.
add-pssnapin microsoft.sharepoint.powershell
 
# specify target SharePoint site to import into
 
 
# specify folder containing exported lists
 
$folder = "C:\Admin\Import\"
 
$Files = Get-ChildItem $folder
 
foreach ($file in $files)
{
 
$name = $file.Name
 
"Importing: " + "$folder$name"
 
import-spweb $site -path ("$folder$name") -includeusersecurity -nologfile
 
}

No comments:

Post a Comment