Weboldal keresés

Á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.

Tippek: Hogyan lehet megtalálni és visszaállítani egy adott felhasználó által törölt összes elemet? Használata: $RecycleBin | Ahol { $_.DeletedBy -like "Domain\Account" }

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

Kapcsolódó cikkek