PowerShell : Playing around SharePoint Recycle Bin

   Here I will show you how to perform different operations on SharePoint Site Recycle bin using PowerShell Scripts.
 
1. Get the Site Collection Recycle bin Item count :   
  1. #check to see if the PowerShell Snapin is added  
  2. if ( (Get-PSSnapin -Name "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null )  
  3. {  
  4.     Add-PsSnapin "Microsoft.SharePoint.PowerShell"  
  5. }  
  6. $siteUrl = Read-Host "Enter the url of the Site Collection :"  
  7. $SPSite = Get-sPSite $siteUrl  
  8.  
  9. #Contains both First Stage & Second Stage Recycle bin Items  
  10. $SPRecycleBinItemCollection  = $SPSite.RecycleBin;  
  11.         
  12. write-host "Processing Site: " $SPSite.RootWeb.Title "`n"  
  13. write-host "Total No. of Items in Recycle bin: " $SPRecycleBinItemCollection.Count  
 2.  Restore All Site Collection Recycle Bin items :     
  1. If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null )    
  2. { Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell }   
  3.   
  4. #Definition of the function that restores de deleted Site Collection   
  5. function WorkWithSPRecycleBin   
  6. {   
  7.         $recyclebinitems = (Get-SPWeb “<Site Collection URL>” ).RecycleBin   
  8.         foreach($recyclebinitem in $recyclebinitems)  
  9.         {  
  10.             (Get-SPWeb “<Site Collection URL>”).RecycleBin.Restore($recyclebinitem.ID)  
  11.         }  
  12. }   
  13.    
  14. Start-SPAssignment –Global   
  15. #Calling the function   
  16. WorkWithSPRecycleBin  
  17. Stop-SPAssignment –Global   
  18.    
  19. Remove-PSSnapin Microsoft.SharePoint.PowerShell  
    3. Delete all SharePoint Site Recycle Bin items :        
  1. If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null )    
  2. { Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell }   
  3.   
  4. #Definition of the function that restores de deleted Site Collection   
  5. function WorkWithSPRecycleBin   
  6. {   
  7.             $recyclebinitems = (Get-SPWeb “<Site Collection URL>” ).RecycleBin   
  8.         foreach($recyclebinitem in $recyclebinitems)  
  9.         {  
  10.             (Get-SPWeb “<Site Collection URL>”).RecycleBin.DeleteAll();  
  11.         }  
  12. }   
  13.    
  14. Start-SPAssignment –Global   
  15. #Calling the function   
  16. WorkWithSPRecycleBin  
  17. Stop-SPAssignment –Global   
  18.    
  19. Remove-PSSnapin Microsoft.SharePoint.PowerShell