3

I am trying to delete items in a list using CSOM powershell but it doesn't seem to work at all, Here is my code atm which is trying to print out the title of my list items but this isn't working either(not printing out any data). Where am I going wrong?

$web = $ctx.Web
$site = $ctx.Site     
$ctx.Load($web)     
$list = $web.Lists.GetByTitle("Pages")
write-host $list.ItemCount        
Write-Host ("Deleting old result page")
Write-Output("Deleting old result page")
foreach($listItem in $list)
{        
    $ctx.Load($listItem)    
    $ctx.ExecuteQuery()    
}

1 Answer 1

6

Its because you haven't loaded the $list.

Use below code and try

$web = $clientContext.Web
$list = $web.Lists.GetByTitle("Pages")
$clientContext.Load($list)
$clientContext.ExecuteQuery()
$count = $list.ItemCount
$newline = [environment]::newline
Write-Host -NoNewline "Deleting listitems from Pages" -foregroundcolor black -backgroundcolor yellow
$continue = $true
while($continue)
{
    Write-Host -NoNewline "." -foregroundcolor black -backgroundcolor yellow
    $query = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery(100, "ID")
    $listItems = $list.GetItems( $query )
    $clientContext.Load($listItems)
    $clientContext.ExecuteQuery()       
    if ($listItems.Count -gt 0)
    {
        for ($i = $listItems.Count-1; $i -ge 0; $i--)
        {
            $listItems[$i].DeleteObject()
        } 
        $clientContext.ExecuteQuery()
    }
    else
    {
        Write-Host "." -foregroundcolor black -backgroundcolor yellow
        $continue = $false;
    }
}
Write-Host "All listitems deleted from Pages." -foregroundcolor black -backgroundcolor green

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.