วิธีสร้างฟิลด์ที่จำเป็นในรายการ SharePoint โดยใช้ PowerShell
ข้อกำหนด: สร้างฟิลด์ที่จำเป็นในรายการ SharePoint Online
วิธีการตั้งค่าฟิลด์รายการที่จำเป็นใน SharePoint
เขตข้อมูลที่จำเป็นใน SharePoint Online คือคอลัมน์ที่ผู้ใช้ต้องกรอกเมื่อสร้างหรือแก้ไขรายการ ช่องที่ต้องกรอกเป็นวิธีหนึ่งในการตรวจสอบให้แน่ใจว่าข้อมูลบางอย่างถูกจับอยู่เสมอ และข้อมูลที่ป้อนลงในรายการหรือไลบรารีมีความสอดคล้องและครบถ้วน ผู้ใช้ไม่สามารถบันทึกรายการได้จนกว่าจะป้อนค่าสำหรับฟิลด์ที่จำเป็น ในบทความนี้ เราจะสำรวจวิธีการตั้งค่าคอลัมน์ของไซต์ให้เป็นทางเลือกหรือจำเป็นโดยใช้การตั้งค่ารายการและสคริปต์ PowerShell
เมื่อต้องการสร้างเขตข้อมูลที่จำเป็นใน SharePoint หรือเมื่อต้องการลบเขตข้อมูลที่จำเป็น (เพื่อทำให้ไม่บังคับ) ในรายการ SharePoint ให้ทำตามขั้นตอนเหล่านี้:
- ไปที่การตั้งค่ารายการ >> เลือกฟิลด์โดยคลิกที่ "ชื่อ" ใต้ส่วน "คอลัมน์"
- ตั้งค่า "ใช่" สำหรับ "ต้องการให้คอลัมน์นี้มีข้อมูล"
คลิก “ตกลง” เพื่อบันทึกการเปลี่ยนแปลง ทำให้ฟิลด์นี้จำเป็น
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 (ทำให้เขตข้อมูลไม่บังคับ)
