Búsqueda de sitios web

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

Artículos relacionados