SharePoint Online: obtenga el tamaño de almacenamiento de la papelera de reciclaje mediante PowerShell
Requisito: Obtener el consumo de espacio de almacenamiento de la papelera de reciclaje de todas las colecciones de sitios de SharePoint Online
SharePoint Online: buscar el tamaño de almacenamiento de la papelera de reciclaje de una colección de sitios
¿Tiene curiosidad por saber cuánto espacio ocupa su papelera de reciclaje de SharePoint Online? La papelera de reciclaje en SharePoint Online le permite restaurar contenido eliminado, como listas, bibliotecas y documentos, dentro de un período de tiempo específico. Como resultado, la papelera de reciclaje también consume espacio de almacenamiento, lo que puede afectar negativamente el rendimiento y la eficiencia de su entorno de SharePoint Online.
En esta publicación, le mostraremos cómo verificar el tamaño de su papelera de reciclaje con la ayuda de PowerShell.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Variables for Processing
$SiteUrl = "https://Crescent.sharepoint.com/Sites/Marketing"
#Setup Credentials to connect
$Cred = Get-Credential
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
#Get the Site collection's recycle bin: both 1st stage and 2nd stage
$RecycleBinItems = $Ctx.Site.RecycleBin
$Ctx.Load($RecycleBinItems)
$Ctx.ExecuteQuery()
#Get Size of the Recycle bin items
$RecycleBinSize = $RecycleBinItems | Measure-Object Size -Sum
Write-Host -f Green "Total Recycle Bin Size: $($RecycleBinSize.Sum/1MB) MB"
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
PowerShell para obtener el tamaño de almacenamiento de la papelera de reciclaje de SharePoint Online
¿Qué tal encontrar el tamaño de la papelera de reciclaje de todos los sitios de SharePoint Online en su inquilino?
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll"
#Function to Get the recycle bin Size of a SharePoint Online site collection
Function Get-SPOSiteRecycleBinSize($SiteURL, $Cred)
{
#Setup credentials
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Set up the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Context.Credentials = $Credentials
$Site = $context.Site
$RecycleBin = $Site.RecycleBin
$context.Load($Site)
$context.Load($RecycleBin)
$context.ExecuteQuery()
$FirstStageSize=0
$SecondStageSize=0
Foreach($Item in $RecycleBin)
{
If($Item.itemState -eq "FirstStageRecycleBin")
{
$FirstStageSize+=$Item.Size
}
Else
{
$SecondStageSize+=$Item.Size
}
}
#Output the results
$Data ="Site Collection URL {0}. First Stage Recycle Bin Size {1}. Second Stage Recycle Bin Size {2}" -f $SiteURL,$FirstStageSize,$SecondStageSize
Write-host -f Green $Data
}
#Get All Site collections from the Tenant- Including Modern Team sites and communication sites
Function Get-SPOSites($AdminSiteURL, $Cred)
{
#Setup credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminSiteURL)
$Ctx.Credentials = $Credentials
#Get the tenant object
$Tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($ctx)
#Get All Site Collections
$SiteCollections=$Tenant.GetSitePropertiesFromSharePoint(0,$true)
$Ctx.Load($SiteCollections)
$Ctx.ExecuteQuery()
#Iterate through Each site collection
ForEach($Site in $SiteCollections)
{
Write-host -f Yellow "Searching Site Collection:"$Site.URL
Get-SPOSiteRecycleBinSize -SiteUrl $Site.Url -Cred $Cred
}
}
#Set Parameters
$AdminSiteUrl = "https://crescent-admin.sharepoint.com/"
$Cred= Get-Credential
Get-SPOSites -AdminSiteURL $AdminSiteUrl -Cred $Cred
Este script le proporciona el almacenamiento ocupado por las papeleras de reciclaje de primera y segunda etapa de todas las colecciones de sitios del inquilino.
PnP PowerShell para obtener el tamaño de la papelera de reciclaje de una colección de sitios de SharePoint Online
Puede usar el cmdlet Get-PnPRecycleBinItem para ver todos los elementos en la papelera de reciclaje de la colección de sitios:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Sum Recycle bin Items Size
$RecycleBinSize = Get-PnPRecycleBinItem -RowLimit 500000 | Measure-Object -Property Size -Sum
#Get Recycle bin size
Write-host "Recycle Bin Size (MB):" ([Math]::Round($RecycleBinSize.Sum/1MB,2))
Genere un informe sobre el tamaño de la papelera de reciclaje para todos los sitios de SharePoint Online
¿Qué tal si averiguamos el tamaño de la papelera de reciclaje de todos los sitios del inquilino? Aquí está el script de PowerShell:
# Parameters
$AdminCenterURL = "https://Crescent-admin.sharepoint.com"
$OutputPath = "C:\Temp\RecycleBinRpt.csv"
Try {
#Connect to PnP Online
Connect-PnPOnline -Url $AdminCenterURL -Interactive
#Get All Site Collections
$SiteCollections = Get-PnPTenantSite -IncludeOneDriveSites:$false
$RecyclebinData = @()
$Counter = 1
#Loop through each site collection
ForEach($Site in $SiteCollections)
{
Try {
Write-host "Processing Site ($Counter of $($SiteCollections.count):" $Site.URL -f Yellow
#Connect to the site
Connect-PnPOnline -Url $Site.URL -Interactive
#Get Recycle bin Item Sizes
$FirstStageSize = Get-PnPRecycleBinItem -RowLimit 500000 -FirstStage | Measure-Object -Property Size -Sum
$SecondStageSize = Get-PnPRecycleBinItem -RowLimit 500000 -SecondStage | Measure-Object -Property Size -Sum
$FirstStageSizeInMB = [Math]::Round($FirstStageSize.Sum/1MB,2)
$SecondStageSizeInMB = [Math]::Round($SecondStageSize.Sum/1MB,2)
$TotalSize = $FirstStageSizeInMB+$SecondStageSizeInMB
#Collect Data
$RecyclebinData+= [PSCustomObject][ordered]@{
SiteName = $Site.Title
URL = $Site.URL
FirstStageSize = $FirstStageSizeInMB
SecondStageSize = $SecondStageSizeInMB
TotalSize = $TotalSize
}
$Counter++
}
Catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
}
#Export the data to CSV
$RecyclebinData | Format-Table
$RecyclebinData | Export-CSV -Path $OutputPath -NoTypeInformation
}
Catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
