Állítsa vissza a törölt elemeket a Lomtárból a SharePointban a PowerShell segítségével
Hogyan lehet visszaállítani a törölt elemeket a SharePoint lomtárból?
A PowerShell egy hatékony szkriptnyelv, amely a rendszergazdák számára nagy irányítást biztosít SharePoint-környezetük felett. Ha Ön is olyan, mint a legtöbb SharePoint-rendszergazda, időnként vissza kell állítania a törölt elemeket a webhelyről. A SharePointban egy elem törlésekor a Lomtárba kerül. Innen visszaállíthatja, ha meggondolja magát, vagy ha véletlenül törölték. Ez a blogbejegyzés bemutatja, hogyan használhatja a PowerShellt a SharePoint törölt elemeinek visszaállítására.
A törölt elemek visszaállításához kövesse az alábbi lépéseket:
- Keresse meg SharePoint-webhelyét >> Kattintson a „Lomtár” hivatkozásra a Gyorsindításban.
Keresse meg a visszaállítani kívánt objektumot az objektum melletti jelölőnégyzet bejelölésével, majd kattintson a Kijelölés visszaállítása gombra.
SharePoint: Helyreállítás a lomtárból a PowerShell segítségével
A PowerShell segítségével a következőképpen állíthatja vissza az elemeket a Lomtárból:
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
}
Ez a szkript visszaállítja az adott elemeket a lomtárból. Mi a teendő, ha egy adott fájlt többször is törölnek? Mi a teendő, ha a fájl eredeti helyén van egy másik, azonos nevű fájl?
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
}
Ez a szkript lekéri a legfrissebb fájlt a lomtárból a törlés dátuma alapján, és ellenőrzi, hogy az eredeti helyen van-e azonos nevű fájl. Ha nem, akkor visszaállítja a fájlt. Ellenkező esetben kihagyja.
Visszaállítás az objektum típusa alapján (például lista, web, listaelem stb.)
Mi a teendő, ha az összes törölt listát vagy törölt alwebhelyet vissza szeretné állítani a Lomtárból? Itt található a PowerShell-szkript az összes törölt lista visszaállításához a SharePoint 2013 lomtárból.
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 az összes elem visszaállításához a SharePoint Lomtárból:
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
}
}
Az összes fájl visszaállítása a SharePoint Lomtárból a PowerShell segítségével:
Állítsunk vissza minden fájlt a SharePoint lomtárból, hagyjuk ki, ha az eredeti helyen létezik azonos nevű fájl.
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
}
}
A SharePoint Online Lomtárából törölt elemek visszaállításához lásd: SharePoint Online: Törölt elemek visszaállítása a Lomtárból a PowerShell segítségével
