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

วิธีสร้างฟิลด์ที่จำเป็นในรายการ SharePoint โดยใช้ PowerShell


ข้อกำหนด: สร้างฟิลด์ที่จำเป็นในรายการ SharePoint Online

วิธีการตั้งค่าฟิลด์รายการที่จำเป็นใน SharePoint

เขตข้อมูลที่จำเป็นใน SharePoint Online คือคอลัมน์ที่ผู้ใช้ต้องกรอกเมื่อสร้างหรือแก้ไขรายการ ช่องที่ต้องกรอกเป็นวิธีหนึ่งในการตรวจสอบให้แน่ใจว่าข้อมูลบางอย่างถูกจับอยู่เสมอ และข้อมูลที่ป้อนลงในรายการหรือไลบรารีมีความสอดคล้องและครบถ้วน ผู้ใช้ไม่สามารถบันทึกรายการได้จนกว่าจะป้อนค่าสำหรับฟิลด์ที่จำเป็น ในบทความนี้ เราจะสำรวจวิธีการตั้งค่าคอลัมน์ของไซต์ให้เป็นทางเลือกหรือจำเป็นโดยใช้การตั้งค่ารายการและสคริปต์ PowerShell

เมื่อต้องการสร้างเขตข้อมูลที่จำเป็นใน SharePoint หรือเมื่อต้องการลบเขตข้อมูลที่จำเป็น (เพื่อทำให้ไม่บังคับ) ในรายการ SharePoint ให้ทำตามขั้นตอนเหล่านี้:

  1. ไปที่การตั้งค่ารายการ >> เลือกฟิลด์โดยคลิกที่ "ชื่อ" ใต้ส่วน "คอลัมน์"
  2. ตั้งค่า "ใช่" สำหรับ "ต้องการให้คอลัมน์นี้มีข้อมูล"
  3. คลิก “ตกลง” เพื่อบันทึกการเปลี่ยนแปลง ทำให้ฟิลด์นี้จำเป็น

PowerShell เพื่อตั้งค่าฟิลด์ที่จำเป็นในรายการ SharePoint Online:

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

นี่คือ PowerShell เพื่อตั้งค่าคอลัมน์เป็น "จำเป็น":


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Set parameter values
$SiteURL="https://Crescent.sharepoint.com/"
$ListName="Projects"
$FieldName="StartDate"

#Get Credentials to connect
$Cred= Get-Credential
  
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
#Get the List
$List = $Ctx.Web.lists.GetByTitle($ListName)

#Get the Field
$Field = $List.Fields.GetByInternalNameOrTitle($FieldName)
$Field.Required = $True
$Field.Update()
$Ctx.ExecuteQuery()

Write-host "Field 'Required' Settings Updated!"

ซึ่งทำให้ฟิลด์ที่จำเป็นใน SharePoint ในทำนองเดียวกัน หากต้องการลบการตั้งค่าฟิลด์ที่จำเป็นสำหรับหลายฟิลด์ในรายการ SharePoint ให้ใช้:


#Set parameter values
$SiteURL="https://Crescent.sharepoint.com/"
$ListName="Projects"
#Set Field Internal Names to make required or disable required
$FieldNames=@("StartDate","ProjectID","Category","Budget")

#Get Credentials to connect
$Cred= Get-Credential
  
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
#Get the List
$List = $Ctx.Web.lists.GetByTitle($ListName)

#Iterate through each field given
ForEach($FieldName in $FieldNames)
{
    #Get the Field
    $Field = $List.Fields.GetByInternalNameOrTitle($FieldName)
    #disable "required" setting for the field
    $Field.Required = $False
    $Field.Update()
    $Ctx.ExecuteQuery()
    Write-host "Field '$FieldName' Required Settings Updated!"
}

PnP PowerShell เพื่อตั้งค่าคอลัมน์รายการที่จำเป็นใน SharePoint Online


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ListName = "Team Projects"
$FieldName= "ProjectStatuss" #Internal Name

#Get Credentials to connect
$Cred = Get-Credential

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Credentials $Cred
    
    #Get the Field from List
    $Field = Get-PnPField -List $ListName -Identity $FieldName -ErrorAction Stop

    #Set the Field Required
    $Field.Required = $True 
    $Field.Update() 
    $Field.Context.ExecuteQuery() 

    Write-host -f Green "Field '$FieldName' Set to Mandatory!"
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

แล้วการตั้งค่าคอลัมน์ทั้งหมดที่จำเป็นล่ะ? ใช้ Set-PnPField cmdlet!


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/PMO"
$ListName = "Projects"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get all fields from the list
Get-PnPField -List $ListName | Where { $_.Required -eq $False -and $_.Title -ne "Name" -and $_.ReadOnlyField -eq $false -and `
    $_.Hidden -eq $false -and $_.InternalName -ne "ContentType" -and $_.InternalName -ne "Attachments"} | Set-PnPField -Values @{Required=$True}

ในทำนองเดียวกัน คุณสามารถลบค่าสถานะที่จำเป็นสำหรับเขตข้อมูลทั้งหมดใน SharePoint Online ได้โดยใช้สิ่งต่อไปนี้:


Get-PnPField -List $ListName | Where { $_.Required -eq $True -and $_.Title -ne "Name" -and $_.ReadOnlyField -eq $false -and $_.Hidden -eq $false -and $_.InternalName -ne  "ContentType" -and $_.InternalName -ne  "Attachments"} | Set-PnPField -Values @{Required=$False}

ปิดใช้งานฟิลด์ที่ต้องระบุใน SharePoint On-Premises:

หากคุณต้องการลบการตั้งค่าสถานะที่จำเป็นสำหรับเขตข้อมูลในรายการ SharePoint ให้ใช้ PowerShell นี้:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
  
#Set Variables
$SiteURL="https://intranet.crescent.com"
$ListName="Projects"
$FieldName="StartDate"
 
#Get Web, List and Field Objects
$Web = Get-SPWeb $SiteURL
$List = $Web.Lists[$ListName]
$Field = $List.Fields[$FieldName]

#Set Required to False
$Field.Required = $False
$Field.Update()
Write-host "Field Required Setting updated!"

ซึ่งจะลบเขตข้อมูลที่จำเป็นในรายการ SharePoint (ทำให้เขตข้อมูลไม่บังคับ)

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