Questi utili comandi PowerShell ci permettono di aggiungere e modificare Colonne del sito in SharePoint.
Aggiungere un nuovo campo speficando le proprietà in formato XML ( definizione dello schema XML disponibile all'indirizzo http://msdn.microsoft.com/en-us/library/ms437580.aspx ) :
$site = Get-SPSite -Identity "http://mywebapplication/"
$web = $site.RootWeb
$fieldXML = '<Field Type="Text"
Name="CustomSiteColumn"
Description="This is a my Site Column."
DisplayName="my Site Column"
Group="my Site Column"
Hidden="FALSE"
Required="FALSE"
ShowInDisplayForm="TRUE"
ShowInEditForm="TRUE"
ShowInListSettings="TRUE"
ShowInNewForm="TRUE"></Field>'
$web.Fields.AddFieldAsXml($fieldXML)
$web.Dispose()
$site.Dispose()
Aggiungere un nuovo campo specificando solo nome e tipo :
$site = Get-SPSite -Identity "http://mywebapplication/"
$web = $site.RootWeb
$web.Fields.Add("CustomSiteColumn",[Microsoft.SharePoint.SPFieldType]::Text,$true)
$web.Dispose()
$site.Dispose()
Modificare le proprietà di un campo ( fare sempre riferimento allo schema XML disponibile all'indirizzo http://msdn.microsoft.com/en-us/library/ms437580.aspx in quanto alcune delle proprietà non sono modificabili ) :
$site = Get-SPSite -Identity "http://mywebapplication/"
$web = $site.RootWeb
$field=$web.Fields["my Site Column"]
$field.Type= "Choice"
$field.Update($true)
$web.Dispose()
$site.Dispose()
Riporto inoltre questo script che ci permette di esportare in formato XML tutte le Colonne del nostro sito :
$sourceWeb = Get-SPWeb http://mywebapplication
$xmlFilePath = "C:\SharePoint\my-SiteColumns.xml"
#Create Export Files
New-Item $xmlFilePath -type file -force
#Export Site Columns to XML file
Add-Content $xmlFilePath ""
Add-Content $xmlFilePath "`n"
$sourceWeb.Fields | ForEach-Object {
if ($_.Group -eq "Custom Columns") {
Add-Content $xmlFilePath $_.SchemaXml
}
}
Add-Content $xmlFilePath ""
$sourceWeb.Dispose()