OneDrive para la Empresa: restaure todos los archivos y carpetas de la Papelera de reciclaje usando PowerShell
Requisito: Restaure todos los archivos y carpetas eliminados de OneDrive para empresas mediante PowerShell.
PowerShell para restaurar todos los elementos eliminados en OneDrive para la Empresa
OneDrive para empresas almacena todos los elementos eliminados en la Papelera de reciclaje. Si elimina accidentalmente un elemento, puede restaurarlo desde la Papelera de reciclaje. La recuperación de elementos eliminados de la papelera de reciclaje de OneDrive para la Empresa a través de la interfaz del navegador web se explica en otra publicación: ¿Cómo restaurar archivos y carpetas desde OneDrive? En esta publicación, veamos cómo usar PowerShell para restaurar todos los archivos y carpetas eliminados de la papelera de reciclaje.
Tenga en cuenta que debe tener derechos de administrador de la colección de sitios en el sitio OneDrive antes de continuar con la restauración.
#Parameters
$AdminCenterURL="https://crescent-admin.sharepoint.com"
$UserAccount = "Salaudeen@Crescent.com" #UPN
Try {
#Connect to Admin Center
Connect-PnPOnline -Url $AdminCenterURL -Interactive
#Get onedrive site URL of the user
$OneDriveURL = Get-PnPUserProfileProperty -Account $UserAccount | Select -ExpandProperty PersonalUrl
If($OneDriveURL -ne $null)
{
#Connect to OneDrive site
Connect-PnPOnline -Url $OneDriveURL -Interactive
#Get All items in the recycle bin
$RecycleBinItems = Get-PnPRecycleBinItem -RowLimit 500000
#Check if there are any deleted items in recycle bins
If($RecycleBinItems.count -eq 0) {
Write-host "No Items found in the recycle bin!" -f Yellow
Break
}
#Restore all items from the recycle bin
$RecycleBinItems = Get-PnPRecycleBinItem -RowLimit 500000
ForEach($Item in $RecycleBinItems)
{
#Get the Original location of the deleted file or folder
$OriginalLocation = "/"+$Item.DirName+"/"+$Item.LeafName
If($Item.ItemType -eq "File")
{
$OriginalItem = Get-PnPFile -Url $OriginalLocation -AsListItem -ErrorAction SilentlyContinue
}
Else #Folder
{
$OriginalItem = Get-PnPFolder -Url $OriginalLocation -ErrorAction SilentlyContinue
}
#Check if the item exists in the original location
If($OriginalItem -eq $null)
{
#Restore the item
Restore-PnPRecycleBinItem -Identity $Item -Force
Write-host "Restored Item '$($Item.LeafName)' to '$($Item.DirName)'" -f Green
}
Else
{
Write-Host "A file or folder with this name $($Item.LeafName) already exists in '$($Item.DirName)', Skipping.." -f Yellow
}
}
}
Else
{
Write-host "OneDrive site for the user doesn't exist!" -f Yellow
}
}
Catch {
Write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
Publicación relacionada: Restaurar archivos eliminados de la Papelera de reciclaje en SharePoint Online usando PowerShell