当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 从 SharePoint 中的回收站恢复已删除的项目

作者:精品下载站 日期:2024-12-14 14:02:40 浏览:13 分类:玩电脑

使用 PowerShell 从 SharePoint 中的回收站恢复已删除的项目


如何从 SharePoint 回收站恢复已删除的项目?

PowerShell 是一种功能强大的脚本语言,可为管理员提供对其 SharePoint 环境的大量控制。如果您像大多数 SharePoint 管理员一样,有时需要从网站中恢复已删除的项目。在 SharePoint 中,删除项目后,它会移至回收站。如果您改变主意或错误删除了它,您可以从那里恢复它。这篇博文将向您展示如何使用 PowerShell 恢复 SharePoint 中已删除的项目。

要恢复已删除的项目,请按照下列步骤操作:

  • 导航到您的 SharePoint 站点 >> 单击快速启动上的“回收站”链接。
  • 通过选中对象旁边的复选框找到要恢复的对象,然后单击“恢复选择”。

    [玩转系统] 使用 PowerShell 从 SharePoint 中的回收站恢复已删除的项目

SharePoint:使用 PowerShell 从回收站还原

以下是如何使用 PowerShell 从回收站恢复项目:


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
}

该脚本从回收站恢复给定的项目。如果某个特定文件被删除多次怎么办?如果文件的原始位置有另一个同名文件怎么办?


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
}

该脚本根据删除日期从回收站中获取最新文件,并检查原始位置是否有同名文件。如果没有,它将恢复该文件。否则,它会跳过。

提示:如何查找并恢复特定用户删除的所有项目?使用:$RecycleBin |其中 { $_.DeletedBy -like “Domain\Account” }

基于对象类型(如List、Web、List Item等)恢复

如果您想从回收站恢复所有已删除的列表或已删除的子站点该怎么办?以下是用于从 SharePoint 2013 回收站恢复所有已删除列表的 PowerShell 脚本。


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

使用 PowerShell 从 SharePoint 回收站还原所有文件:

让我们从 SharePoint 回收站恢复所有文件,如果原始位置存在同名文件则跳过。


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

若要从 SharePoint Online 中的回收站还原已删除的项目,请参阅:SharePoint Online:使用 PowerShell 从回收站还原已删除的项目

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯