Quantcast
Channel: SharePoint Diary
Viewing all articles
Browse latest Browse all 1058

Export Import Site Columns with PowerShell

$
0
0
Its a frequent requirement to copy site columns between SharePoint environments, isn't it? Today had a requirement to copy bunch of site columns from development environment to staging environment.

We used to package site columns as a WSP Solution package in such requirements: Create Site Column Feature for SharePoint 2010 ,This time, Lets use PowerShell to Export and Import Site Columns!

PowerShell Script to Export Site columns:
    #Get the Source Web
    $sourceWeb = Get-SPWeb "http://dev.crescent.com"
    #Create a XML File to Export Fields
    $xmlFile = "C:\SiteColumns.xml"
    New-Item $xmlFile -type file -force

    #Wrap Field Schema XML inside <Fields> Element 
    Add-Content $xmlFile "`n<Fields>"
    #Export All Site Columns of specific Group to XML file
    $sourceWeb.Fields | ForEach-Object {
        if ($_.Group -eq "Crescent Travel Request") {
            Add-Content $xmlFile $_.SchemaXml
        }
    }
    #Closing Wrapper
    Add-Content $xmlFile "</Fields>"
    #Dispose the web object
    $sourceWeb.Dispose()

PowerShell Script to Import Site Columns from XML:
  #Get the Target Web
  $TargetWeb = Get-SPWeb "http://test.crescent.com"
 #Get XML file exported
 [xml]$fieldsXML = Get-Content("C:\SiteColumns.xml")
 #Loop Through Each Field
 $fieldsXML.Fields.Field | ForEach-Object {
  #Check if the target web has the field already!
  if ($TargetWeb.Fields.ContainsField( $_.Name) -Eq $false) 
  { 
   #Add Site column to Target Web
   $TargetWeb.fields.AddFieldAsXml($_.OuterXml)
               }
 }
Thanks Phil for the idea: http://get-spscripts.com/2011/01/export-and-importcreate-site-columns-in.html

Viewing all articles
Browse latest Browse all 1058

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>