Delete all SharePoint list items with PowerShell

Did you ever wanted to quickly delete all items from a SharePoint list without having to run into complex scenarios?
This can be simply achieved using PnP Powershell (obviously!). And it fits in a single line!

If you are looking for options to delete documents from SharePoint document libraries, maybe this post can help.

Delete SharePoint list items

Connect to the site using Connect-PnPOnline and then run:

Get-PnPList -Identity Lists/MyList | Get-PnPListItem -PageSize 100 -ScriptBlock { Param($items) 
$items.Context.ExecuteQuery() } | % {$_.DeleteObject()}

14 Replies to “Delete all SharePoint list items with PowerShell”

  1. Hello, Joel
    Hope you are doing well.

    And how about doing a Filter on $Items before a deleting action ??

    Warm regards.

  2. Hello, Joel
    Hope you are doing well.

    And how about doing a Filter on $Items before a deleting action ??

    Warm regards.

  3. Hi Joel,

    I have the same problem and at first came to the same solution. But then I thought:
    “$_.DeleteObject()” runs for each item… Is there a way to run “delete” on the server side in a batches?
    So i tried:
    Get-PnPListItem -List $list -Fields “ID” -PageSize 100 -ScriptBlock { Param($items) $items | Sort-Object -Descending | ForEach-Object{ $_.DeleteObject() } }
    and it worked. Thougts?

  4. Hi Joel,

    I have the same problem and at first came to the same solution. But then I thought:
    “$_.DeleteObject()” runs for each item… Is there a way to run “delete” on the server side in a batches?
    So i tried:
    Get-PnPListItem -List $list -Fields “ID” -PageSize 100 -ScriptBlock { Param($items) $items | Sort-Object -Descending | ForEach-Object{ $_.DeleteObject() } }
    and it worked. Thougts?

  5. Hi Vladilen,

    That looks fine to me and may be much better in terms of performance. Have you tried to delete 1000+ items to ensure that it does not time out? If not, that’s great and thanks for sharing here

  6. Hi Vladilen,

    That looks fine to me and may be much better in terms of performance. Have you tried to delete 1000+ items to ensure that it does not time out? If not, that’s great and thanks for sharing here

  7. I have tried the script to delete more 300k items in a list and I had issues with time out with errors like

    Get-PnPListItem : The collection has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.
    At C:\Users\rauckloo\Scripts\deleteAllItemsFromLists.ps1:24 char:1
    + Get-PnPListItem -List $listName -Fields “ID” -PageSize 100 -ScriptBlo …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : WriteError: (:) [Get-PnPListItem], CollectionNotInitializedException
    + FullyQualifiedErrorId : EXCEPTION,PnP.PowerShell.Commands.Lists.GetListItem

    Each time, I encountered the error at varying amount of times, I just re run the script again. It took +7 hours to delete 330k items from a list. Also if the list has less items the page size specified, e.g. Page size is 10 and number of items remaining in list is 5, the 5 items don’t get deleted.

  8. I have tried the script to delete more 300k items in a list and I had issues with time out with errors like

    Get-PnPListItem : The collection has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.
    At C:\Users\rauckloo\Scripts\deleteAllItemsFromLists.ps1:24 char:1
    + Get-PnPListItem -List $listName -Fields “ID” -PageSize 100 -ScriptBlo …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : WriteError: (:) [Get-PnPListItem], CollectionNotInitializedException
    + FullyQualifiedErrorId : EXCEPTION,PnP.PowerShell.Commands.Lists.GetListItem

    Each time, I encountered the error at varying amount of times, I just re run the script again. It took +7 hours to delete 330k items from a list. Also if the list has less items the page size specified, e.g. Page size is 10 and number of items remaining in list is 5, the 5 items don’t get deleted.

Leave a Reply

Your email address will not be published. Required fields are marked *

Exit mobile version