ค้นหาเว็บไซต์

สร้างคอลัมน์ไซต์ใน SharePoint โดยใช้ PowerShell


คอลัมน์ของไซต์เป็นเขตข้อมูลที่ใช้ซ้ำได้ซึ่งคุณสามารถเพิ่มลงในไซต์ SharePoint ของคุณได้ และคอลัมน์ของไซต์สามารถนำไปใช้ในรายการหรือไลบรารีจำนวนเท่าใดก็ได้! วิธีการเพิ่มคอลัมน์ของไซต์ของ PowerShell มีประโยชน์อย่างยิ่งเมื่อคุณต้องเพิ่มคอลัมน์ของไซต์จำนวนมาก สมมติว่า คุณอาจมีคอลัมน์ของไซต์บางคอลัมน์ที่สร้างขึ้นในสภาพแวดล้อม DEV ของคุณและต้องการให้มีคอลัมน์เหล่านี้ในสภาพแวดล้อม STAGING หรือ PROD คุณจะสร้างทีละรายการด้วย SharePoint UI หรือไม่ เลขที่! นั่นคงจะวุ่นวายมาก ฉันกำลังแชร์สคริปต์ PowerShell เพื่อสร้างคอลัมน์ไซต์ใน SharePoint ในโพสต์นี้

เพิ่มคอลัมน์ของไซต์ลงใน SharePoint ด้วย PowerShell

นี่คือตัวอย่างง่ายๆ ของการสร้างคอลัมน์ไซต์ใน SharePoint 2016 ด้วย 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)

สร้างคอลัมน์ไซต์โดยใช้ PowerShell - ให้เราสร้างเป็นกลุ่ม!

ตอนนี้ มาเพิ่มคอลัมน์ของไซต์เป็นกลุ่มกัน เพียงป้อนชื่อคอลัมน์ของคุณลงในอาร์เรย์: $SiteColumnsToAdd และเรียกใช้โค้ด


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 เพื่อสร้างคอลัมน์ไซต์ - ฟิลด์ตัวเลือก:

นี่คืออีกตัวอย่างหนึ่งของ PowerShell เพื่อสร้างคอลัมน์ไซต์ใน 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 สร้างคอลัมน์ของไซต์โดยใช้ PowerShell โดยใช้วิธี Field Schema XML

เมธอด AddFieldAsXml ช่วยให้เรามีความยืดหยุ่นมากขึ้น:


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!" 

โปรดดู Field Element XML เพื่อระบุตัวเลือกฟิลด์ เช่น อ่านอย่างเดียว กลุ่ม ฯลฯ
https://msdn.microsoft.com/en-us/library/office/ms437580.aspx

SharePoint เพิ่มคอลัมน์ของไซต์ด้วย PowerShell จากไฟล์ CSV

วิธีการเพิ่มคอลัมน์ของไซต์จำนวนมากจากไฟล์ 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() 

โพสต์ที่เกี่ยวข้อง:

  • คัดลอก-วางคอลัมน์ไซต์โดยใช้ PowerShell: ส่งออกคอลัมน์ไซต์นำเข้าด้วย PowerShell
  • สร้างโซลูชันตามคุณลักษณะเพื่อเพิ่มคอลัมน์ของไซต์ใน SharePoint: สร้างโซลูชันตามคุณลักษณะเพื่อปรับใช้คอลัมน์ไซต์ SharePoint

บทความที่เกี่ยวข้อง