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

6 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

Please Login and comment to get your questions answered!

Powered by Blogger.