Restaurar elementos eliminados de la Papelera de reciclaje en SharePoint usando PowerShell
¿Cómo restaurar elementos eliminados de la papelera de reciclaje de SharePoint?
PowerShell es un potente lenguaje de secuencias de comandos que proporciona a los administradores mucho control sobre su entorno de SharePoint. Si es como la mayoría de los administradores de SharePoint, ocasionalmente necesitará restaurar elementos eliminados de su sitio. En SharePoint, cuando se elimina un elemento, se mueve a la Papelera de reciclaje. Desde allí podrás restaurarlo si cambias de opinión o si se eliminó por error. Esta publicación de blog le mostrará cómo usar PowerShell para restaurar elementos eliminados en SharePoint.
Para restaurar elementos eliminados, siga estos pasos:
- Navegue a su sitio de SharePoint >> Haga clic en el enlace "Papelera de reciclaje" en el Inicio rápido.
Localice el objeto que desea restaurar seleccionando la casilla de verificación junto al objeto y luego haga clic en Restaurar selección.
SharePoint: restaurar desde la papelera de reciclaje usando PowerShell
A continuación se explica cómo utilizar PowerShell para restaurar elementos de la Papelera de reciclaje:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Configuration variables
$SiteURL="https://portal.crescent.com/sites/ops/"
$ItemName="Classifieds.xlsx" #Can be a List Name, File Name or ID of an Item
#Get Objects
$site = Get-SPSite $SiteURL
$RecycleBin = $site.RecycleBin
#Get the Item from Recycle bin
$Item = $RecycleBin | Where{$_.Title -eq $ItemName}
if($Item -ne $null)
{
$Item.Restore()
Write-Host "Item Restored from Recycle Bin!" -f DarkGreen
}
else
{
Write-Host "No Item Found with the given name!" -ForegroundColor RED
}
Este script restaura elementos determinados de la papelera de reciclaje. ¿Qué pasa si un archivo en particular se elimina más de una vez? ¿Qué pasa si la ubicación original del archivo tiene otro archivo con el mismo nombre?
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Configuration variables
$SiteURL="https://intranet.crescent.com"
$ItemName="Juneau.docx"
#Get necessary objects
$Site = Get-SPSite $SiteURL
$Web = Get-SPWeb $SiteURL
$RecycleBin = $Site.RecycleBin
#Get the latest Item deleted from Recycle bin
$DeletedItem = $RecycleBin | Where {$_.Title -eq $ItemName} | Sort-Object DeletedDate -Descending | Select -First 1
If($DeletedItem -ne $Null)
{
#Get the Original location of the deleted file
$OriginalLocation = $DeletedItem.DirName+"/"+$DeletedItem.LeafName
#Check if file exists
If(!$Web.GetFile($OriginalLocation).Exists)
{
$DeletedItem.Restore()
Write-Host "Deleted File restored Successfully!" -f Green
}
else
{
Write-Host "There is another item with the same name!" -f Yellow
}
}
Else
{
Write-Host "No Item Found with the given name!" -f Yellow
}
Este script obtiene el archivo más reciente de la papelera de reciclaje según la fecha de eliminación y verifica si la ubicación original tiene un archivo con el mismo nombre. Si no, restaura el archivo. De lo contrario, se salta.
Restauración basada en el tipo de objeto (como lista, web, elemento de lista, etc.)
¿Qué sucede si desea restaurar todas las listas eliminadas o los subsitios eliminados de la Papelera de reciclaje? Aquí está el script de PowerShell para restaurar todas las listas eliminadas de la papelera de reciclaje de SharePoint 2013.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Configuration variables
$SiteURL="https://portal.crescent.com"
#Get Objects
$site = Get-SPSite $SiteURL
$RecycleBin = $site.RecycleBin
#Get All deleted Lists from Recycle bin
$DeletedItems = $RecycleBin | Where{ $_.ItemType -eq "List"}
if($DeletedItems)
{
Foreach($Item in $DeletedItems)
{
$Item.Restore()
Write-Host "'$($Item.Title)' Restored from Recycle Bin!" -f DarkGreen
}
}
PowerShell para restaurar todos los elementos de la papelera de reciclaje de SharePoint:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteURL="https://portal.crescent.com/sites/operations"
$Site = Get-SPSite $SiteURL
#Get All Recycle bin items
$DeletedItems = $Site.RecycleBin
If($DeletedItems)
{
ForEach($Item in $DeletedItems)
{
$Site.RecycleBin.restore($Item.ID)
Write-Host "Item restored:"$Item.Title
}
}
Restaurar todos los archivos de la papelera de reciclaje de SharePoint usando PowerShell:
Restauremos todos los archivos de la papelera de reciclaje de SharePoint; omitamos si existe un archivo con el mismo nombre en la ubicación original.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Parameter
$SiteURL="https://sharepoint.crescent.com"
#Get necessary objects
$Site = Get-SPSite $SiteURL
$Web = Get-SPWeb $SiteURL
$RecycleBin = $Site.RecycleBin
#Get deleted Items from Recycle bin - sorted by deleted date in Descending order
$DeletedItems = $RecycleBin | Where {$_.ItemType -eq "File"} | Sort-Object DeletedDate -Descending
$DeletedItems | ForEach-Object {
#Get the Original location of the deleted file
$OriginalLocation = $_.DirName+"/"+$_.LeafName
#Check if file exists
If(!$Web.GetFile($OriginalLocation).Exists)
{
$_.Restore()
Write-Host "$($_.LeafName) restored Successfully!" -f Green
}
Else
{
Write-Host "There is another file with the same name.. Skipping $($_.LeafName)" -f Yellow
}
}
Para restaurar elementos eliminados de la Papelera de reciclaje en SharePoint Online, consulte: SharePoint Online: restaurar elementos eliminados de la Papelera de reciclaje usando PowerShell
