Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
$siteURL = ""
$userId = "" #Not required for on premise site
$pwd = Read-Host -Prompt "Enter password" -AsSecureString #Not required for on premise site
$creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($userId, $pwd) #Not required for on premise site
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL)
$ctx.credentials = $creds #Not required for on premise site
try{
$lists = $ctx.web.Lists
$list = $lists.GetByTitle("TestList")
$query = New-Object Microsoft.SharePoint.Client.CamlQuery
$query.ViewXml = "<View><Query><Where><Eq><FieldRef Name='Title' /><Value Type='Text'>b</Value></Eq></Where></Query></View>"
$listItems = $list.GetItems($query)
$ctx.load($listItems)
$ctx.executeQuery()
Write-Host " " $listItems.Count " Item(s) Found"
foreach($listItem in $listItems)
{
Write-Host "ID - " $listItem["ID"] "Title - " $listItem["Title"]
}
}
catch{
write-host "$($_.Exception.Message)" -foregroundcolor red
}In this article, you will learn how to filter out the list items using CAML query with PowerShell & CSOM on any SharePoint platform site.
