Here is a PowerShell script to empty the recycle bin for all SharePoint Online sites that are in a CSV file using the PNP module. I created this by tweaking the script found here: SharePoint Online: Empty Recycle Bin using PowerShell - SharePoint Diary
<#
Empty the Recycle Bin for SharePoint Online Sites
Author: Tom DeMeulenaere - Jan 4, 2023
- This Script uses the SharePoint online PNP module to connect to each sharepoint url in a CSV and cycles through to empty the 1st and 2nd stage recycle bins
Source: https://www.sharepointdiary.com/2016/06/sharepoint-online-powershell-to-empty-recycle-bin.html
#>
$SPAdminURL = "https://contoso-admin.sharepoint.com"
$siteInfo = Import-CSV C:\SWSetup\SharepointSites.csv
$AcctName = "my.account@contoso.com"
Connect-PnPOnline -Url $SPAdminURL -Interactive
Function Empty-RecycleBin($url){
#Connect to Tenant Admin Site
Connect-PnPOnline -Url $s.URL -Interactive
Write-host "Started Recycle Bin Empty for "$s.URL -f Green
#Empty Reycle Bins: Both 1st stage and 2nd Stage (For Recycle Bins with less than 5000 items)
try{Clear-PnPRecycleBinItem -All -Force}
catch [Microsoft.SharePoint.Client.ServerException]{
#Get recycle bin items in batches and delete them permanently (For Recycle Bins that have 5000+ items)
While( (Get-PnPRecycleBinItem -RowLimit 500) -ne $null){Get-PnPRecycleBinItem -RowLimit 500 | Clear-PnPRecycleBinItem -Force}
}
catch [Microsoft.SharePoint.Client.ClientRequestException]{
Set-SPOUser -Site $s.URL -IsSiteCollectionAdmin $true -LoginName $AcctName
Empty-RecycleBin($url)
}
}
foreach ($s in $siteInfo)
{
$start = Get-Date
Empty-RecycleBin($s.URL)
Write-host "Completed Recycle Bin Empty for "$s.URL" Time Elapsed: "(New-TimeSpan -Start $start -End (Get-Date)) -f Yellow
}
Empty the Recycle Bin for SharePoint Online Sites
Author: Tom DeMeulenaere - Jan 4, 2023
- This Script uses the SharePoint online PNP module to connect to each sharepoint url in a CSV and cycles through to empty the 1st and 2nd stage recycle bins
Source: https://www.sharepointdiary.com/2016/06/sharepoint-online-powershell-to-empty-recycle-bin.html
#>
$SPAdminURL = "https://contoso-admin.sharepoint.com"
$siteInfo = Import-CSV C:\SWSetup\SharepointSites.csv
$AcctName = "my.account@contoso.com"
Connect-PnPOnline -Url $SPAdminURL -Interactive
Function Empty-RecycleBin($url){
#Connect to Tenant Admin Site
Connect-PnPOnline -Url $s.URL -Interactive
Write-host "Started Recycle Bin Empty for "$s.URL -f Green
#Empty Reycle Bins: Both 1st stage and 2nd Stage (For Recycle Bins with less than 5000 items)
try{Clear-PnPRecycleBinItem -All -Force}
catch [Microsoft.SharePoint.Client.ServerException]{
#Get recycle bin items in batches and delete them permanently (For Recycle Bins that have 5000+ items)
While( (Get-PnPRecycleBinItem -RowLimit 500) -ne $null){Get-PnPRecycleBinItem -RowLimit 500 | Clear-PnPRecycleBinItem -Force}
}
catch [Microsoft.SharePoint.Client.ClientRequestException]{
Set-SPOUser -Site $s.URL -IsSiteCollectionAdmin $true -LoginName $AcctName
Empty-RecycleBin($url)
}
}
foreach ($s in $siteInfo)
{
$start = Get-Date
Empty-RecycleBin($s.URL)
Write-host "Completed Recycle Bin Empty for "$s.URL" Time Elapsed: "(New-TimeSpan -Start $start -End (Get-Date)) -f Yellow
}
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.