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

[玩转系统] SharePoint Online:使用 PowerShell 从回收站还原文档

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

SharePoint Online:使用 PowerShell 从回收站还原文档


要求:从 SharePoint Online 的回收站中恢复已删除的文档。

如何从 SharePoint Online 中的回收站还原?

当您从 SharePoint Online 文档库中删除文档时,它只会移至 SharePoint 回收站,这与您在本地计算机上删除文档以防止数据丢失时发生的情况类似。 SharePoint Online 中的回收站有两个阶段。当项目被删除时,它将进入第一阶段回收站(或最终用户回收站)。当您从第一阶段回收站删除某个项目时,该项目将移至网站集管理员可以访问的第二阶段回收站。已删除项目的总生命周期为 93 天。当达到 93 天的保留期时,该项目将从回收站中永久删除(无论它处于第一阶段还是第二阶段)。如何在 SharePoint Online 中恢复已删除的文件?

要从回收站恢复项目,请按照下列步骤操作:

  1. 登录到您的 SharePoint 网站,然后从右上角的网站设置图标或快速启动菜单中单击“网站内容”。
  2. 单击页面右上角区域的“回收站”链接。这称为“最终用户回收站”,其中列出了您或其他人删除的所有项目。 (只要您对已删除的项目有编辑权限,您就可以从这里查看和恢复它们!)。
  3. 此页面列出了 SharePoint Online 网站上所有已删除的文件,按删除日期排序。选择您要恢复的文档,然后单击“恢复选择”。

    [玩转系统] SharePoint Online:使用 PowerShell 从回收站还原文档

  4. 单击“确定”按钮确认恢复。
  5. 您选择的文件应该可以在删除它的原始位置中找到。

从管理回收站恢复已删除的文档:

由于最终用户回收站已进行安全修剪,因此您可以使用网站集管理回收站来查看和恢复最终用户在网站集级别删除的文档。以站点管理员身份登录站点,进入站点设置并单击“站点集管理”部分下的“回收站”链接(URL 快捷方式:“/_layouts/15/AdminRecycleBin.aspx”)以恢复已删除的文件。

从第二阶段回收站恢复文档:

从第一阶段回收站(或最终用户回收站)删除的文档只要保留时间少于 93 天,就不会被永久删除。相反,它们会移至第二阶段,网站集管理员可以访问该阶段。如果存储配额达到最大值,最好清空回收站,因为已删除的 SharePoint 数据会占用网站的存储空间。

请按照以下步骤从第二阶段回收站恢复:

  1. 以网站集管理员身份登录到 SharePoint Online 网站。
  2. 单击设置齿轮图标>>站点信息>>并选择“查看所有站点设置”。
  3. 在“网站设置”页面上,单击“网站集管理”部分下的“回收站”链接。
  4. 单击页面底部的“第二阶段回收站”链接。 (第二阶段回收站的 URL 快捷方式:/_layouts/15/AdminRecycleBin.aspx?view=5#view=13)
  5. 选择您要恢复的 SharePoint 文件,然后单击“恢复”。

就这样。删除的 SharePoint 文件将恢复到其原始位置。现在,让我们看看如何使用 SharePoint Online PowerShell 从回收站还原项目。

SharePoint Online:使用 PowerShell 从回收站还原

在SharePoint Online中,我们可以使用PowerShell恢复已删除的文件。例如,让我们使用 PowerShell 将所有 Excel 文件从回收站恢复到原始位置。


#Load SharePoint Online Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
   
##Variables for Processing
$SiteUrl = "https://crescent.sharepoint.com/sites/Sales/"
$UserName="[email protected]"

#Get the password to connect 
$Password = Read-host -assecurestring "Enter Password for $UserName"
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,$Password)
 
Try {    
    #Setup the context
    $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
    $Context.Credentials = $Credentials
    
    #Get the Site recycle bin
    $Site = $Context.Site
    $RecycleBinItems = $Site.RecycleBin
    $Context.Load($Site)
    $Context.Load($RecycleBinItems)
    $Context.ExecuteQuery()

    #Get all Excel files from Recycle bin
    $ExcelFiles= $RecycleBinItems | Where {$_.Title -like "*.xlsx"}
    Write-Host "Total Number of Excel Files found Recycle Bin:" $ExcelFiles.Count
    
    #Restore from Recylce bin
    $ExcelFiles | ForEach-Object { $_.Restore() }
    $Context.ExecuteQuery()    
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

请注意,上述脚本从第一阶段回收站(或最终用户回收站)恢复。您可能必须使用 Site 对象来从网站集回收站(或第二阶段回收站)恢复,而不是使用 Web 对象。

SharePoint Online:使用 PnP PowerShell 从回收站还原文件

我们还可以使用 PnP PowerShell 恢复 SharePoint Online 中已删除的文件。要从回收站恢复项目,第一步,让我们获取要恢复的项目的 ID:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get All Items from Recycle bin
Get-PnPRecycleBinItem -RowLimit 500000 | Select Title, ID, ItemType, Size, ItemState, DirName, DeletedByName, DeletedDateLocalFormatted | Format-table -AutoSize 

这将为您提供回收站中的所有项目及其 ID。

使用 -RowLimit 开关添加分页以回收站项目并避免阈值超出问题:“Get-PnPRecycleBinItem:尝试的操作被禁止,因为它超出了管理员强制执行的列表视图阈值”。
例如。 获取-PnPRecycleBinItem -SecondStage -RowLimit 5000

[玩转系统] SharePoint Online:使用 PowerShell 从回收站还原文档

现在,您可以使用 Restore-PnPRecycleBinItem cmdlet 还原带有 ID 参数的项目。


#Restore Recycle Bin Item by ID
Restore-PnPRecycleBinItem -Identity fd97143c-68fc-48ef-b148-5b6228610899 -Force

SharePoint Online:使用 PowerShell 从回收站恢复批量

如果要恢复回收站中的所有项目,请使用以下命令:


#Restore All Items from recycle bin
Get-PnPRecycleBinItem -RowLimit 500000 | Restore-PnpRecycleBinItem

同样,您可以按文件名称或类型恢复文件。例如,让我们恢复所有文档 (.docx)


Get-PnPRecycleBinItem -RowLimit 500000 | Where {$_.LeafName -like "*.docx"} | Restore-PnpRecycleBinItem -Force

使用 PowerShell 恢复从特定库中删除的所有文件和文件夹

如果同时创建了同名的新文件或文件夹怎么办?也许该文件夹被重新创建,并且该文件被重新上传到被删除的原始位置。让我们在从回收站恢复之前先进行检查。


#Parameter
$SiteURL= "https://crescent.sharepoint.com/sites/marketing"
$DirPath = "sites/marketing/Migration"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get the Web
$Web = Get-PnPWeb
 
#Get All Items deleted from a specific path or library - sort by most recently deleted
$DeletedItems = Get-PnPRecycleBinItem -RowLimit 500000 | Where { $_.DirName -like "$DirPath*"} | Sort-Object -Property DeletedDate -Descending

#Restore all deleted items from the given path to its original location
ForEach($Item in $DeletedItems)
{
    #Get the Original location of the deleted file
    $OriginalLocation = "/"+$Item.DirName+"/"+$Item.LeafName
    If($Item.ItemType -eq "File")
    {
        $OriginalItem = Get-PnPFile -Url $OriginalLocation -AsListItem -ErrorAction SilentlyContinue
    }
    Else #Folder
    {
        $OriginalItem = Get-PnPFolder -Url $OriginalLocation -ErrorAction SilentlyContinue
    }
    #Check if the item exists in the original location
    If($OriginalItem -eq $null)
    { 
        #Restore the item
        $Item | Restore-PnpRecycleBinItem -Force
        Write-Host "Item '$($Item.LeafName)' restored Successfully!" -f Green
    }
    Else
    {
        Write-Host "There is another file with the same name.. Skipping $($Item.LeafName)" -f Yellow
    }
}

要在 SharePoint Online 中还原已删除的网站,您必须使用 PowerShell 或 SharePoint 管理中心。这是我关于从回收站恢复已删除项目的另一篇文章:SharePoint Online:PowerShell 从回收站恢复已删除项目

经常问的问题:

如何在 SharePoint Online 中恢复已删除的文档库?

要在 SharePoint Online 中恢复已删除的文档库,您可以转到该库所在的 SharePoint 网站。在屏幕左下角的快速启动栏导航中,单击“回收站”。从那里,您可以选择已删除的库,然后通过选择它然后单击“恢复”按钮将其恢复到原始位置。需要注意的是,已删除的项目只会在回收站中保留 93 天,因此如果您需要恢复已删除的库,最好迅速采取行动。

如何从 SharePoint Online 恢复永久删除的文件?

要从 SharePoint Online 恢复永久删除的文件,您可以使用保留策略或使用第三方数据恢复工具。如果这两个选项都不可用,您必须联系 Microsoft 支持人员寻求帮助。重要的是要注意,恢复已删除的文件有一个有限的时间范围,因此最好迅速采取行动。

您可以在 SharePoint 中搜索回收站吗?

是的,您可以在 SharePoint Online 中搜索回收站。只需转到回收站并使用搜索栏即可找到您要查找的项目。您还可以按删除日期、项目类型和其他条件进行过滤,以缩小搜索结果范围。您还可以使用 PowerShell 搜索并导出回收站中已删除的项目

谁可以看到 SharePoint 中的回收站?

任何网站成员(具有编辑权限级别)或网站/组所有者(具有完全控制权限级别)都可以查看 SharePoint Online 中的回收站。对于团队网站(带或不带 Office 365 组),回收站链接永久且显着地位于快速启动(左侧菜单)上。如果回收站在快速启动栏中不可见,管理员可以通过单击“设置”,然后单击“网站内容”来找到它。

如何在 SharePoint Online 中找到回收站?

要访问 SharePoint Online 中的回收站,请按照下列步骤操作: 转到 SharePoint Online 网站,单击右上角的设置齿轮图标,然后选择“网站内容”。单击网站内容页面上的“回收站”链接。如果您有网站集管理员权限,您可以在网站设置页面下访问网站集回收站!

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

取消回复欢迎 发表评论:

关灯