Home
»
SharePoint
»
Lister l’ensemble des fichiers dans la corbeille SharePoint avec PowerShell
,

Lister l’ensemble des fichiers dans la corbeille SharePoint avec PowerShell

Exporter les éléments de la corbeille SharePoint avec PowerShell

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-PnPOnline

Dans 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

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Suggestions : PowerShell Syntex Migration Échap pour fermer