L’interface d’affichage de la corbeille dans SharePoint Online n’est pas très pratique si l’on a besoin de lister et contrôler l’ensemble des éléments supprimés par les utilisateurs. Cela arrive notamment si des dossiers ou des fichiers disparaissent du jour au lendemain sans raison particulière ; on ne parle pas forcément d’actes volontaires mais plutôt d’un audit des suppressions.
La corbeille de SharePoint
Comme évoqué, la corbeille native dans SharePoint Online n’est pas spécialement user-friendly notamment à cause du fonctionnement en « infinite scroll ».
Autre point négatif de l’interface de la corbeille SharePoint, c’est qu’il n’est pas possible de faire un export EXCEL de l’arborescence des données contenues.
Du coup, pour réaliser cet export, la solution PowerShell s’impose tout naturellement.
Pour rappel, la période de rétention de la corbeille SharePoint peut aller jusqu’à 90 jours. 30 jours avec la corbeille « classique », puis les éléments passent dans la corbeille secondaire.
Exemple de script PowerShell pour lister les éléments de la corbeille SharePoint
Je vous propose dans cet article un code PowerShell relativement simple qui permettra de générer un fichier CSV avec l’ensemble des éléments de la corbeille.
# ============================================
# Paramètres
# ============================================
$SiteURL = "URL_DE_VOTRE_SITE_SHAREPOINT"
$OutputCSV = "C:\temp\RecycleBin_Export.csv" # Votre répertoire de stockage sur votre poste de travail
# Option : FirstStage / SecondStage / All
$StageFilter = "All" # Possible: FirstStage, SecondStage, All
# ============================================
# Chargement du module PnP
# ============================================
if (!(Get-Module -ListAvailable -Name PnP.PowerShell)) {
Write-Host "Installation du module PnP.PowerShell..."
Install-Module PnP.PowerShell -Force -AllowClobber
}
Import-Module PnP.PowerShell
# ============================================
# Connexion
# ============================================
Connect-PnPOnline -Url $SiteURL -Interactive -ClientId "VOTRE APP ID POWERSHELL"
# ============================================
# Récupération des éléments de la corbeille
# ============================================
Write-Host "Récupération des éléments de la corbeille..."
$RecycleItems = Get-PnPRecycleBinItem
# ============================================
# Filtrage éventuel
# ============================================
if ($StageFilter -eq "FirstStage") {
$RecycleItems = $RecycleItems | Where-Object { $_.ItemState -eq "FirstStage" }
}
elseif ($StageFilter -eq "SecondStage") {
$RecycleItems = $RecycleItems | Where-Object { $_.ItemState -eq "SecondStage" }
}
# Sinon "All" = pas de filtre
# ============================================
# Transformation des données
# ============================================
$ExportData = $RecycleItems | Select-Object `
Title,
ItemType,
@{Name="Size(KB)"; Expression={ [math]::Round($_.Size / 1KB, 2) }},
ItemState,
DirName,
DeletedByName,
DeletedDate
# ============================================
# Export CSV
# ============================================
$ExportData | Sort-Object DeletedDate -Descending | Export-Csv -Path $OutputCSV -NoTypeInformation -Encoding UTF8
Write-Host "Export terminé : $OutputCSV"
# ============================================
# Déconnexion
# ============================================
Disconnect-PnPOnlineDans ce script, il vous faudra modifier les informations suivantes pour qu’il fonctionne sur votre tenant :
- $SiteURL = « URL_DE_VOTRE_SITE_SHAREPOINT »
- $OutputCSV = « C:\temp\RecycleBin_Export.csv »
- Connect-PnPOnline -Url $SiteURL -Interactive -ClientId « VOTRE APP ID POWERSHELL »


Laisser un commentaire