Export Site Columns by power script:
1: $sourceWeb = Get-SPWeb -Identity "http://br53:3000/"
2: $xmlFilePath = "C:\Script-SiteColumns.xml"
3: #Create Export Files
4: New-Item $xmlFilePath -type file -force
5: #Export Site Columns to XML file
6: Add-Content $xmlFilePath "<?xml version=`"1.0`" encoding=`"utf-8`"?>"
7: Add-Content $xmlFilePath "`n<Fields>"
8: $sourceWeb.Fields | ForEach-Object {
9: if ($_.Group -eq "Custom Columns") {
10: Add-Content $xmlFilePath $_.SchemaXml
11: }
12: }
13: Add-Content $xmlFilePath "</Fields>"
14: $sourceWeb.Dispose()
Import Site Columns by power script:
clear
1: $destWeb = Get-SPWeb -Identity "http://br53:1001/"
2: $installPath = "C:"
3: #Get exported XML file
4: $fieldsXML = [xml](Get-Content($installPath + "\Script-SiteColumns.xml"))
5: $fieldsXML.Fields.Field | ForEach-Object {
6: #Configure core properties belonging to all column types
7: $fieldXML = '<Field Type="' + $_.Type + '"
8: Name="'
+ $_.Name +
'"
9: ID="'
+ $_.ID +
'"
10: Description="'
+ $_.Description +
'"
11: DisplayName="'
+ $_.DisplayName +
'"
12: StaticName="'
+ $_.StaticName +
'"
13: Group="'
+ $_.Group +
'"
14: Hidden="'
+ $_.Hidden +
'"
15: Required="'
+ $_.Required +
'"
16: Sealed="'
+ $_.Sealed +
'"'
17: #Configure optional properties belonging to specific column types – you may need to add some extra properties here if present in your XML file
18: if ($_.ShowInDisplayForm) { $fieldXML = $fieldXML + "`n" + 'ShowInDisplayForm="' + $_.ShowInDisplayForm + '"'}
19: if ($_.ShowInEditForm) { $fieldXML = $fieldXML + "`n" + 'ShowInEditForm="' + $_.ShowInEditForm + '"'}
20: if ($_.ShowInListSettings) { $fieldXML = $fieldXML + "`n" + 'ShowInListSettings="' + $_.ShowInListSettings + '"'}
21: if ($_.ShowInNewForm) { $fieldXML = $fieldXML + "`n" + 'ShowInNewForm="' + $_.ShowInNewForm + '"'}
22: if ($_.EnforceUniqueValues) { $fieldXML = $fieldXML + "`n" + 'EnforceUniqueValues="' + $_.EnforceUniqueValues + '"'}
23: if ($_.Indexed) { $fieldXML = $fieldXML + "`n" + 'Indexed="' + $_.Indexed + '"'}
24: if ($_.Format) { $fieldXML = $fieldXML + "`n" + 'Format="' + $_.Format + '"'}
25: if ($_.MaxLength) { $fieldXML = $fieldXML + "`n" + 'MaxLength="' + $_.MaxLength + '"' }
26: if ($_.FillInChoice) { $fieldXML = $fieldXML + "`n" + 'FillInChoice="' + $_.FillInChoice + '"' }
27: if ($_.NumLines) { $fieldXML = $fieldXML + "`n" + 'NumLines="' + $_.NumLines + '"' }
28: if ($_.RichText) { $fieldXML = $fieldXML + "`n" + 'RichText="' + $_.RichText + '"' }
29: if ($_.RichTextMode) { $fieldXML = $fieldXML + "`n" + 'RichTextMode="' + $_.RichTextMode + '"' }
30: if ($_.IsolateStyles) { $fieldXML = $fieldXML + "`n" + 'IsolateStyles="' + $_.IsolateStyles + '"' }
31: if ($_.AppendOnly) { $fieldXML = $fieldXML + "`n" + 'AppendOnly="' + $_.AppendOnly + '"' }
32: if ($_.Sortable) { $fieldXML = $fieldXML + "`n" + 'Sortable="' + $_.Sortable + '"' }
33: if ($_.RestrictedMode) { $fieldXML = $fieldXML + "`n" + 'RestrictedMode="' + $_.RestrictedMode + '"' }
34: if ($_.UnlimitedLengthInDocumentLibrary) { $fieldXML = $fieldXML + "`n" + 'UnlimitedLengthInDocumentLibrary="' + $_.UnlimitedLengthInDocumentLibrary + '"' }
35: if ($_.CanToggleHidden) { $fieldXML = $fieldXML + "`n" + 'CanToggleHidden="' + $_.CanToggleHidden + '"' }
36: if ($_.List) { $fieldXML = $fieldXML + "`n" + 'List="' + $_.List + '"' }
37: if ($_.ShowField) { $fieldXML = $fieldXML + "`n" + 'ShowField="' + $_.ShowField + '"' }
38: if ($_.UserSelectionMode) { $fieldXML = $fieldXML + "`n" + 'UserSelectionMode="' + $_.UserSelectionMode + '"' }
39: if ($_.UserSelectionScope) { $fieldXML = $fieldXML + "`n" + 'UserSelectionScope="' + $_.UserSelectionScope + '"' }
40: if ($_.BaseType) { $fieldXML = $fieldXML + "`n" + 'BaseType="' + $_.BaseType + '"' }
41: if ($_.Mult) { $fieldXML = $fieldXML + "`n" + 'Mult="' + $_.Mult + '"' }
42: if ($_.ReadOnly) { $fieldXML = $fieldXML + "`n" + 'ReadOnly="' + $_.ReadOnly + '"' }
43: if ($_.FieldRef) { $fieldXML = $fieldXML + "`n" + 'FieldRef="' + $_.FieldRef + '"' }
44: $fieldXML = $fieldXML + ">"
45: #Create choices if choice column
46: if ($_.Type -eq "Choice") {
47: $fieldXML = $fieldXML + "`n<CHOICES>"
48: $_.Choices.Choice | ForEach-Object {
49: $fieldXML = $fieldXML + "`n<CHOICE>" + $_ + "</CHOICE>"
50: }
51: $fieldXML = $fieldXML + "`n</CHOICES>"
52: }
53: #Set Default value, if specified
54: if ($_.Default) { $fieldXML = $fieldXML + "`n<Default>" + $_.Default + "</Default>" }
55: #End XML tag specified for this field
56: $fieldXML = $fieldXML + "</Field>"
57: #Create column on the site
58: $destWeb.Fields.AddFieldAsXml($fieldXML.Replace("&","&"))
59: write-host "Created site column" $_.DisplayName "on" $destWeb.Url
60: $destWeb.Dispose()
61: }