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

แบบสอบถาม CAML เพื่อรับรายการจาก SharePoint โดยใช้ PowerShell


CAML ย่อมาจาก Collaborative Application Markup Language เป็นภาษาคิวรีที่ใช้ XML ที่ใช้ในการสอบถามข้อมูลใน SharePoint

วิธีใช้แบบสอบถาม CAML ใน PowerShell

เราสร้างแบบสอบถาม CAML และส่งวัตถุ SPQuery เพื่อดึงข้อมูลรายการที่กรองจากวัตถุ นี่คือตัวอย่างพื้นฐานของการใช้แบบสอบถาม CAML ใน PowerShell มาดูโปรเจ็กต์ที่ “ใช้งานอยู่” ทั้งหมดจากรายการโปรเจ็กต์กัน

ตัวอย่างแบบสอบถาม SharePoint PowerShell CAML

เราสามารถใช้แบบสอบถาม CAML เพื่อกรองและดึงข้อมูลจาก SharePoint นี่คือวิธีการใช้แบบสอบถาม CAML ใน PowerShell:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Set config variables
$WebURL="https://intranet.crescent.com/"
$ListName ="Projects"

#Get Web and List Objects
$Web = Get-SPWeb $WebURL
$List = $Web.Lists[$ListName]

#Define the CAML Query
$Query = New-Object Microsoft.SharePoint.SPQuery
$Query.Query = "@
<Where>
    <Eq>
        <FieldRef Name='Status' />
        <Value Type='Choice'>Active</Value>
    </Eq>
</Where>"

#Get List Items matching the query
$ListItems = $List.GetItems($Query)

Write-host "Total Number of Items: "$ListItems.count

#Loop through Each Item
ForEach($Item in $ListItems) 
{
    #Do something
    Write-host $Item["Title"]
}

เหตุใดเราจึงควรใช้ CAML เพื่อกรองรายการ
เราสามารถกรองรายการได้ดังนี้:


$ListItems = $List.Items | Where {$_["Status"] -eq "Active"}

อย่างไรก็ตาม แนะนำให้ใช้ CAML เป็นอย่างยิ่ง การใช้แบบสอบถาม CAML เพื่อรับรายการจากรายการ SharePoint หรือไลบรารีเอกสารจะได้รับประโยชน์จากประสิทธิภาพที่มากขึ้น!

เครื่องมือ SharePoint CAML Query Builder
มีเครื่องมือสำหรับสร้าง CAML Query ตัวสร้างคิวรี CAML ที่ฉันชอบคือ U2U CAML Query Builder และ CAML Designer 2013 ซึ่งทำงานร่วมกับ SharePoint On-premises และ SharePoint Online

นี่คือโพสต์อื่นของฉันสำหรับ SharePoint Online เกี่ยวกับวิธีใช้แบบสอบถาม CAML กับ PowerShell: แบบสอบถาม CAML ของ SharePoint Online ใน PowerShell

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