Crear columna de sitio en SharePoint usando PowerShell
Las columnas de sitio son campos reutilizables que puede agregar a sus sitios de SharePoint y se pueden usar en cualquier cantidad de listas o bibliotecas. La forma PowerShell de agregar columnas de sitio es extremadamente útil cuando tiene que agregar columnas de sitio de forma masiva. Digamos: Es posible que haya creado ciertas columnas de sitio en su entorno DEV y le gustaría tenerlas en STAGING o en un entorno PROD. ¿Los creará uno por uno con la interfaz de usuario de SharePoint? ¡No! Eso sería agitado. Estoy compartiendo mis scripts de PowerShell para crear columnas de sitio en SharePoint en esta publicación.
Agregar una columna de sitio a SharePoint con PowerShell
A continuación se muestra un ejemplo sencillo de cómo crear una columna de sitio en SharePoint 2016 con PowerShell:
#Get the Root Web
$RootWeb = Get-SPWeb "https://intranet.crescent.com"
#Create a text Field site column
$RootWeb.Fields.Add("ProjectCode","Text",$false)
$SalaryField = $RootWeb.Fields.Add("Crescent-Salary", "Currency", $false)
Cree columnas de sitio usando PowerShell: ¡creemos en masa!
Ahora, agreguemos columnas del sitio de forma masiva. Simplemente ingrese los nombres de sus columnas en la matriz: $SiteColumnsToAdd y ejecute el código.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables
$RootWebURL ="https://intranet.crescent.com"
#Get the Root Web
$RootWeb = Get-SPWeb $RootWebURL
# List of Site Column Names to be Added
$SiteColumnsToAdd = @("Branch Name", "Branch Code", "Destination")
ForEach($SiteColumn in $SiteColumnsToAdd)
{
if (!$RootWeb.Fields.ContainsField($SiteColumn))
{
#Remove Space in the Field's Internal Name
$InternalName= $SiteColumn.Replace(" ","")
#Add new site column
$RootWeb.Fields.Add($InternalName, "Text", $false)
#Get the site column
$Addedcolumn = $RootWeb.Fields.GetField($InternalName)
#Set the Column Title and Group
$Addedcolumn.Group="Crescent Columns"
$Addedcolumn.Title=$SiteColumn
$Addedcolumn.update()
Write-host "Site column $($SiteColumn) has been Added Successfully!"
}
}
$RootWeb.Dispose()
SharePoint 2013 PowerShell para crear una columna de sitio - Campo de elección:
Aquí hay otro ejemplo de PowerShell para crear una columna de sitio en SharePoint:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables
$RootWebURL ="https://intranet.crescent.com"
#Get the Root Web
$RootWeb = Get-SPWeb $RootWebURL
#Create a Choice Field site column
$RootWeb.Fields.Add("Departments","Choice",$false)
#Get the field by internal Name
$ChoiceField=$RootWeb.Fields.GetField("Departments")
#Set the Site column Group
$ChoiceField.Group="Crescent Columns"
#Add Choices
$ChoiceField.Choices.Add("Operations")
$ChoiceField.Choices.Add("Marketing")
$ChoiceField.Choices.Add("Sales")
$ChoiceField.Choices.Add("Finance")
#Set Title
$ChoiceField.Title="Department Selection"
#Default choice
$ChoiceField.DefaultValue="Sales"
#Allow fill in choices
$ChoiceField.FillInChoice=$true
#Apply changes to the column
$ChoiceField.Update()
Write-host "Site column $($SiteColumn) has been Added Successfully!"
$RootWeb.Dispose()
SharePoint 2016 crea una columna de sitio usando PowerShell - usando el método XML de esquema de campo
El método AddFieldAsXml nos da más flexibilidad:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables
$RootWebURL ="https://intranet.crescent.com"
#Get the Root Web
$RootWeb = Get-SPWeb $RootWebURL
#Define the Site column XML
$FieldXML = '<Field Type="Number" DisplayName="Bpt-InvoiceNo" Required="TRUE" EnforceUniqueValues="FALSE" Indexed="FALSE" Min="1" Max="10000" Group="Bpt Columns" ID="{b81c7da6-1317-46fa-a32b-9f446c30b6e9}" StaticName="Bpt-InvoiceNo" Name="Bpt-InvoiceNo"></Field>'
#Create site columns with powershell from XML
$RootWeb.Fields.AddFieldAsXml($FieldXML)
Write-host "Site column has been Added Successfully!"
Consulte el XML del elemento de campo para especificar opciones de campo como Solo lectura, Grupo, etc.
https://msdn.microsoft.com/en-us/library/office/ms437580.aspx
SharePoint agrega una columna de sitio con PowerShell desde un archivo CSV
¿Qué tal agregar columnas de sitio de forma masiva desde un archivo CSV?
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables
$RootWebURL ="https://intranet.crescent.com"
$CSVPath = "D:\SiteColumns.csv"
#Get the Root Web
$RootWeb = Get-SPWeb $RootWebURL
#Import from CSV File
$SiteColumnsCSV = Import-csv -Path $CSVPath #CSV has "Title" column Header
foreach($Column in $SiteColumnsCSV)
{
#Get the field title from CSV
$FieldTitle = $Column.Title
#Check if a site column exists already
if (!$RootWeb.Fields.ContainsField($FieldTitle))
{
#Frame FieldXMLString from the column Title
$FieldXMLString = [String]::Format('<Field Type="Text" Name="{0}" DisplayName="{1}" StaticName="{0}" Required="FALSE"></Field>',$fieldTitle.Replace(" ",""),$FieldTitle)
#create site column sharepoint 2010 powershell from XML string
$RootWeb.Fields.AddFieldAsXml($FieldXMLString)
Write-host "Site column '$($FieldTitle)' has been Added Successfully!"
}
}
$RootWeb.Dispose()
Publicaciones relacionadas:
- Copiar y pegar columnas del sitio usando PowerShell: Exportar Importar columnas del sitio con PowerShell
- Cree una solución basada en funciones para agregar columnas de sitio en SharePoint: cree una solución basada en funciones para implementar columnas de sitios de SharePoint
