PowerShell Kullanarak Silinen Öğeleri SharePoint'teki Geri Dönüşüm Kutusundan Geri Yükleme


Silinen öğeler SharePoint geri dönüşüm kutusundan nasıl geri yüklenir?

PowerShell, yöneticilere SharePoint ortamları üzerinde çok fazla kontrol sağlayan güçlü bir betik dilidir. Çoğu SharePoint yöneticisi gibiyseniz, zaman zaman silinen öğeleri sitenizden geri yüklemeniz gerekir. SharePoint'te bir öğe silindiğinde Geri Dönüşüm Kutusu'na taşınır. Fikrinizi değiştirirseniz veya yanlışlıkla silinirse oradan geri yükleyebilirsiniz. Bu blog yazısı, SharePoint'te silinen öğeleri geri yüklemek için PowerShell'in nasıl kullanılacağını gösterecektir.

Silinen öğeleri geri yüklemek için şu adımları izleyin:

  • SharePoint sitenize gidin >> Hızlı Başlatmadaki “Geri Dönüşüm Kutusu” bağlantısına tıklayın.
  • Nesnenin yanındaki onay kutusunu işaretleyerek geri yüklemek istediğiniz nesneyi bulun ve ardından Seçimi Geri Yükle'yi tıklayın.

SharePoint: PowerShell'i kullanarak geri dönüşüm kutusundan geri yükleme

Öğeleri Geri Dönüşüm Kutusu'ndan geri yüklemek için PowerShell'i nasıl kullanacağınız aşağıda açıklanmıştır:


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
}

Bu komut dosyası verilen öğeleri geri dönüşüm kutusundan geri yükler. Belirli bir dosya birden fazla kez silinirse ne olur? Dosyanın orijinal konumunda aynı adda başka bir dosya varsa ne olur?


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
}

Bu komut dosyası, silinen tarihe göre geri dönüşüm kutusundan en son dosyayı alır ve orijinal konumda aynı adda bir dosya olup olmadığını kontrol eder. Değilse dosyayı geri yükler. Aksi takdirde atlar.

İpuçları: Belirli bir kullanıcı tarafından silinen tüm öğeler nasıl bulunur ve geri yüklenir? Kullanın: $RecycleBin | Nerede { $_.DeletedBy -like “Etki Alanı\Hesap” }

Nesne Türüne (Liste, Web, Liste Öğesi vb.) dayalı olarak geri yükleme

Silinen tüm listeleri veya silinen alt siteleri Geri Dönüşüm Kutusu'ndan geri yüklemek isterseniz ne olur? Silinen tüm listeleri SharePoint 2013 geri dönüşüm kutusundan geri yüklemek için PowerShell betiği buradadır.


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
 }
}

SharePoint Geri Dönüşüm Kutusu'ndaki tüm öğeleri geri yüklemek için PowerShell:


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
     }
}

PowerShell'i kullanarak SharePoint Geri Dönüşüm Kutusu'ndaki Tüm Dosyaları Geri Yükleme:

Tüm dosyaları SharePoint geri dönüşüm kutusundan geri yükleyelim, orijinal konumda aynı adda bir dosya varsa atlayın.


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
    }
}

Silinen öğeleri SharePoint Online'da Geri Dönüşüm Kutusu'ndan geri yüklemek için bkz.: SharePoint Online: Silinen Öğeleri PowerShell kullanarak Geri Dönüşüm Kutusu'ndan Geri Yükleme

İlgili makaleler