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

[玩转系统] SharePoint Online:使用 PowerShell 从回收站恢复已删除的文件

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

SharePoint Online:使用 PowerShell 从回收站恢复已删除的文件


要求: 使用 PowerShell 从 SharePoint Online 中的回收站还原文件。

如何从 SharePoint Online 中的回收站恢复文件?

有时我们可能会发现自己需要一种方法来检索已删除的文件或被错误删除的文件夹。 SharePoint 回收站或多或少类似于桌面上的 Windows 回收站,可让您查看和恢复站点中丢失/损坏/删除的项目。由于 SharePoint Online 没有可用的内置备份,因此回收站可以帮助您恢复已删除的项目并防止数据丢失长达 93 天。那么,如何在 SharePoint Online 中恢复已删除的文件?

要从 SharePoint Online 回收站还原项目,请执行以下操作:

  1. 导航到要从回收站还原已删除项目的 SharePoint 网站。
  2. 单击“设置”齿轮图标 >> 从站点设置菜单中选择“站点内容”链接。
  3. 单击“网站内容”页面右上角的“回收站”链接。您将导航到该网站的“回收站”页面(不是网站集!),其中列出了回收站中的所有项目。

    [玩转系统] SharePoint Online:使用 PowerShell 从回收站恢复已删除的文件

  4. 要从站点回收站恢复项目,请在“回收站”页面上选中要恢复的每个项目的复选框,然后单击“恢复”按钮。如果您希望恢复所有文件,请选择所有项目。或者,您可以仅选择要恢复的文件,然后单击“恢复”。

    [玩转系统] SharePoint Online:使用 PowerShell 从回收站恢复已删除的文件

所选项目将恢复,并且最终用户回收站页面将刷新以反映更改。如果您意外删除某个项目或该项目被其他人删除并且您需要恢复它,这会很有用。如果在第一级回收站中没有找到已删除的文件,可以在第二级回收站中查找。

从网站集回收站恢复已删除的文件和文件夹

如果您具有网站集管理员权限,则可以使用“网站集回收站”并还原网站集中任何网站的项目。如果某个项目从网站集回收站中删除,或者超过保留时间,则该项目将被永久删除。以下是在 SharePoint Online 中还原文件夹的方法:

  1. 以网站管理员身份导航到网站集中的顶级网站(根网站)。
  2. 单击“设置”图标 >> 从“设置”菜单中选择“站点设置”链接。
  3. 在“网站设置”页面上,单击“网站集管理”部分中的“回收站”链接。
  4. 找到并选择已删除的文档,然后单击“恢复选择”。

    [玩转系统] SharePoint Online:使用 PowerShell 从回收站恢复已删除的文件

现在,您可以按照相同的步骤还原网站集管理员回收站中的任何项目。

确保回收站中没有同名的文件或文件夹。否则,您最终会收到错误消息:“位置”中已存在名为“文件夹名称”的文件夹。要恢复文件夹,请重命名现有文件夹,然后重试。”。同样,我们可以使用 PowerShell 恢复已删除的项目,例如文件或文件夹。

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

如果您不小心删除了 SharePoint Online 中的文档库,请按照以下步骤将其恢复。

  1. 转到您删除文档库的 SharePoint Online 网站。
  2. 单击右上角的设置,然后选择站点信息>>查看所有站点设置。
  3. 在网站设置页面上,向下滚动到网站集管理部分,然后单击“回收站”。
  4. 找到您不小心删除的文档库,然后单击其旁边的恢复按钮。如果在那里找不到它,请检查“第二阶段”回收站。
  5. 就是这样!您的文档库现已成功恢复。
如何检查谁删除了 SharePoint Online 中的文件?只要看看“删除者”栏即可!

如果列表、列表项、库、文件和文件版本的父项尚未被删除,则可以将其恢复到其原始位置。如果文件已被删除,则无法恢复文件的版本。这是因为删除文件会删除该文件的所有版本。如果文件所属的库已被删除,则同样适用。必须先恢复库,然后才能恢复文件。

如何从 SharePoint Online 恢复永久删除的文件?如果在最终用户和网站集回收站中找不到该内容,管理员可以联系 Microsoft 支持人员。

SharePoint Online:PowerShell 从回收站还原项目

PowerShell 是恢复 SharePoint Online 中已删除且仍在回收站中的文件的有效方法。让我们恢复 SharePoint Online 网站集中特定用户删除的所有项目:


#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/marketing"
$DeletedByUserEmail = "[email protected]"

#Get Credentials to connect
$Cred= Get-Credential
  
Try {    
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
     
    #Get the Site recycle bin
    $Site = $Ctx.Site
    $RecycleBinItems = $Site.RecycleBin
    $Ctx.Load($Site)
    $Ctx.Load($RecycleBinItems)
    $Ctx.ExecuteQuery()
 
    #Get all items deleted by a specific user
    $DeletedItemsByUser = $RecycleBinItems | Where {$_.DeletedByEmail -eq $DeletedByUserEmail}
    Write-Host "Total Number of Items Deleted by User in Recycle Bin:" $DeletedItemsByUser.Count
     
    #sharepoint online restore deleted files using PowerSehll
    $DeletedItemsByUser | ForEach-Object { $_.Restore(); Write-host "Restored Itme:"$_.Title }
    $Ctx.ExecuteQuery()    
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

此 PowerShell 可恢复已删除的 SharePoint 文件和文件夹。同样,我们可以根据删除日期恢复删除的项目。

SharePoint Online PowerShell 从回收站还原项目

让我们恢复今天删除的所有项目吧!以下是如何使用 PowerShell 从回收站恢复批量:


#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/marketing"
$DeletedDate = (Get-Date).Date #Get Today's Date

#Get Credentials to connect
$Cred= Get-Credential
  
Try {    
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
     
    #Get the Site recycle bin
    $Site = $Ctx.Site
    $RecycleBinItems = $Site.RecycleBin
    $Ctx.Load($Site)
    $Ctx.Load($RecycleBinItems)
    $Ctx.ExecuteQuery()
 
    #Get all items deleted on given date
    $DeletedItems = $RecycleBinItems | Where { ($_.DeletedDate).Date -eq $DeletedDate }
    Write-Host "Total Number of Items Deleted on given Date:" $DeletedItems.Count
     
    #Restore items from Recylce bin
    $DeletedItems | ForEach-Object { $_.Restore(); Write-host "Restored Item:"$_.Title }
    $Ctx.ExecuteQuery()    
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
} 

这些步骤可用于轻松有效地从回收站恢复已删除的文件。

PnP PowerShell 用于还原 SharePoint Online 中的回收站项目

让我们使用 PnP PowerShell 脚本恢复过去 7 天内删除的项目。


#Parameter
$SiteURL= "https://crescent.sharepoint.com/sites/marketing"

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

#Get All Items Deleted in the Past 7 Days
$DeletedItems = Get-PnPRecycleBinItem -RowLimit 500000 | Where { $_.DeletedDate -gt (Get-Date).AddDays(-7) }

#Restore Recycle bin items matching given query
$DeletedItems | Restore-PnpRecycleBinItem -Force

恢复从特定 SharePoint Online 库删除的所有文件

同样,您可以使用 PowerShell 恢复从特定站点、子站点、库或文件夹中删除的所有项目:


#Parameter
$SiteURL= "https://crescent.sharepoint.com/sites/marketing"
$DirPath = "sites/marketing/Shared Documents"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get All Items deleted from a specific path or library
$DeletedItems = Get-PnPRecycleBinItem -RowLimit 500000 | Where { $_.DirName -like "$DirPath*"} | Restore-PnpRecycleBinItem -Force

如果文件或文件夹已经存在,如何跳过它?


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

如何使用 PowerShell 恢复特定用户在特定时间内删除的文件?当然可以,方法如下:


$SiteURL = "https://crescent.sharepoint.com/sites/Retail"
#Set From and To Date
$FromDate = Get-Date("01/15/2021")
$ToDate= Get-Date("02/15/2021")
$DeletedByEmail = "[email protected]"

#Connect to Site
Connect-PnPOnline -Url $SiteURL -Interactive

#Restore All Items deleted between given date and by a specific user
$DeletedItems = Get-PnPRecycleBinItem -RowLimit 500000 | Where {($_.DeletedDate -ge $FromDate -and $_.DeletedDate -le $ToDate) -and ($_.DeletedByEmail -eq $DeletedByEmail)} | Sort-Object -Property DeletedDate -Descending

SharePoint Online:恢复特定用户删除的所有文件

要恢复特定用户删除的所有文件,请使用:


Get-PnPRecycleBinItem -RowLimit 500000 | Where { $_.DeletedByEmail -eq "[email protected]"} | Restore-PnpRecycleBinItem -Force
SharePoint Online:批量还原回收站中的所有项目
要从回收站恢复所有项目,只需从脚本中删除“where”子句即可!
获取 PnPRecycleBinItem -RowLimit 500000 |恢复-PnpRecycleBinItem

包起来

总之,使用 PowerShell 从 SharePoint Online 中的回收站恢复已删除的文件是一个简单的过程,任何具有平台和 PowerShell 脚本语言基础知识的人都可以执行。通过使用 PowerShell,您可以快速轻松地恢复已删除的文件,而无需使用 SharePoint Online Web 界面。无论您是 SharePoint 管理员还是网站所有者,使用 PowerShell 恢复已删除的文件都是管理和保护 SharePoint Online 数据的重要工具。凭借快速轻松地恢复已删除文件的能力,您可以帮助确保重要数据永远不会丢失,即使在意外删除的情况下也是如此。

这是关于从回收站还原文件的另一篇文章:SharePoint Online:使用 PowerShell 从回收站还原文件

经常问的问题:

如何清空 SharePoint Online 中的回收站?

导航到您的 SharePoint Online 网站,然后从快速启动导航中单击“回收站”。您还可以从站点设置访问回收站 >> 选择“站点内容”>> 单击右上角的“回收站”链接。在回收站页面上,单击工具栏中的“清空回收站”按钮!
详细信息:使用 PowerShell 在 SharePoint Online 中清空回收站

如何从 SharePoint Online 回收站中删除网站集?

删除的网站集将进入租户级回收站。您可以从 SharePoint 管理中心永久删除已删除的网站: 在 SharePoint Online 管理中心,单击“网站”>>“已删除的网站”>> 从列表中选择网站,然后单击“删除”按钮工具栏。您还可以使用 PowerShell 清空回收站。
详细信息:永久删除 SharePoint Online 中的网站集

如何访问 SharePoint Online 回收站?

要访问 SharePoint Online 中的回收站,请导航到 SharePoint 站点 >> 单击“设置”齿轮图标 >> 选择“站点内容”。在“网站内容”页面上,单击右上角的“回收站”链接。

如何在 SharePoint Online 中恢复已删除的子网站?

删除的子网站进入第二阶段网站集回收站!转到您删除子网站的 SharePoint Online 网站集。单击设置齿轮,选择站点信息>>查看所有站点设置。在网站设置页面上,向下滚动到网站集管理部分,然后单击“回收站”。点击底部的“第二阶段回收站”链接 >> 选择子网站,然后点击命令栏中的“恢复”按钮,开始恢复子网站。
更多信息:SharePoint Online 恢复已删除的子网站

网站回收站和网站集回收站有什么区别?

网站回收站和网站集回收站是 SharePoint Online 中存储已删除项目的两个不同位置。网站回收站是网站上的一个专用位置,用于存储所有已删除的项目,并允许用户在需要时访问和恢复内容。网站集回收站也称为第二阶段回收站,是网站集管理员管理的回收站。它通过提供第二阶段回收站,使网站集管理员能够更好地控制已删除的项目。网站集回收站只能由网站集管理员访问。

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

取消回复欢迎 发表评论:

关灯