kwizcom banner advertisement

Empty SharePoint Recycle Bins Programmatically with PowerShell

Requirement: Empty recycle bin in SharePoint
In a Database attachment method migration project, we decided to clear all the recycle bins to get some additional free space in databases. There were 3000+ site collections. Automation?

SharePoint Automation = PowerShell :-)
how to empty sharepoint recycle bin using powershell
Empty SharePoint Site Collection Recycle bin using PowerShell:
Here is the PowerShell script to empty SharePoint recycle bin.

#Get the Site Collection
$Site = Get-SPSite "https://portal.crescent.com/sites/test"

#Delete all from 1st Stage Recycle bin
$Site.AllWebs | Foreach-object { $_.RecycleBin.MoveAllToSecondStage() }

#Empty 2nd Stage Recycle bin
$Site.RecycleBin.DeleteAll();
This deletes all items from recycle bin in SharePoint 2013 using PowerShell.

PowerShell Script to Empty SharePoint Recycle Bins Programmatically:
Lets empty the recycle bin of all site collection under a given web application. Here is the PowerShell to delete all items in recycle bin.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 

$WebApp=Get-SPWebApplication "http://intranet.crescent.com"

    foreach ($SPSite in $webApp.Sites)
    {
      #get the collection of webs
      foreach($SPWeb in $SPSite.AllWebs)
         {
             #Empty the 1st Stage Recycle bin items PERMENANTLY
             #$SPWeb.RecycleBin.DeleteAll();
             
             #Send the 1st Stage Recycle bin items to 2nd Stage
             $SPWeb.RecycleBin.MoveAllToSecondStage();

              write-host "End-User Recycle Bin Items Deleted for:" 
              write-host $SPWeb.title ":" $SPWeb.URL "`n"

              #Dispose Web object
              $SPWeb.Dispose()
         }
             #Empty SharePoint site collection recycle bin (Second Stage Recycle bin) or Admin Recycle bin
             $SPSite.RecycleBin.DeleteAll();

             #Dispose Site object
             $SPSite.Dispose()

             write-host "Administrator Recycle bin Items Deleted for:" $SPSite.RootWeb.title "`n"
    }
Above code is fairly simple, and can be rewritten in C# also.
Empty SharePoint Recycle Bins Programmatically with PowerShell Empty SharePoint Recycle Bins Programmatically with PowerShell Reviewed by Salaudeen Rajack on 7:12 PM Rating: 5

9 comments:

  1. How do you run this Powershell in Sharepoint 2007?

    ReplyDelete
  2. Nice script, thanks for sharing.
    But I have to note that it leaks memory as it does not dispose the SPSite and SPWeb objects. Details can be found here: https://msdn.microsoft.com/de-de/library/aa973248(v=office.12).aspx

    ReplyDelete
  3. Can this be modified to run on a single site collection and not the entire Web App?

    ReplyDelete
  4. Hi Salaudeen,
    Can we delete files from recycle bin if deleted by certain user?

    ReplyDelete
  5. Salaudeen,
    Thank you for the reference. I cannot get it to work, it throws error displaying "You cannot call a method on a null-valued expression". Can you post the one that filters by user who deleted and then delete from all places?

    ReplyDelete

Please Login and comment to get your questions answered!

Powered by Blogger.