magritton
2/6/2019 - 11:26 PM

Run Caml Query

This runs a caml query against a list via powershell

#Definition of the function that allows to do the CAML query 
function DoCAMLQuery 
{ 
    param ($url,$listName) 
    try 
    { 
        $web = Get-SPWeb $url        
        $list = $web.Lists.TryGetList($listName)  
        if ($list)  
        {  
            $spqQuery = New-Object Microsoft.SharePoint.SPQuery 
            #$spqQuery.Query =  "<Where><And><And><Eq><FieldRef Name='ApprovedByDepartment'></FieldRef><Value Type='Text'>109</Value></Eq><Eq><FieldRef Name='AwardFY'></FieldRef><Value Type='Text'>19</Value></Eq></And><Neq><FieldRef Name='AwardStatus' /><Value Type='Choice'>Cancelled</Value></Neq></And></Where>" 
            $spqQuery.Query =  "<Where><Eq><FieldRef Name='AwardFY'></FieldRef><Value Type='Number'>19</Value></Eq></Where>"
            #$spqQuery.ViewFields = "<FieldRef Name='FileLeafRef' /><FieldRef Name='Title' />" 
            #$spqQuery.ViewFieldsOnly = $true 
            $splListItems = $list.GetItems($spqQuery) 
 
            $iNumber=1 
            foreach ($splListItem in $splListItems) 
            { 
                write-host "Item # $iNumber - Name: " $splListItem.Name " ," "Title:" $splListItem["Title"] -ForegroundColor Green 
                $iNumber+=1 
            } 
        }      
        $web.Dispose() 
    } 
    catch [System.Exception] 
    { 
        write-host -f red $_.Exception.ToString() 
    } 
} 

Start-SPAssignment -Global 
#Calling the function 
$url="https://xxxx/dept/1100/CMDAWARDS/PDQStore" 
$listName="Award" 
DoCamlQuery -url $url -listName $listName 
Stop-SPAssignment -Global