SharePoint Online: คืนค่าไซต์ย่อยที่ถูกลบจากถังรีไซเคิลโดยใช้ PowerShell
ข้อกำหนด: ผู้ใช้ลบไซต์ย่อยโดยไม่ได้ตั้งใจ ขณะนี้ความต้องการคือการคืนค่าไซต์ย่อยที่ถูกลบใน SharePoint Online
จะคืนค่าไซต์ย่อยที่ถูกลบใน SharePoint ได้อย่างไร
คุณหรือผู้ใช้ปลายทางเคยลบไซต์ย่อยใน SharePoint Online โดยไม่ได้ตั้งใจหรือไม่ มีใครที่มีสิทธิ์ควบคุมเต็มรูปแบบกดปุ่มลบโดยไม่ตั้งใจหรือไม่? (ในไซต์ทีมและไซต์การติดต่อสื่อสารที่ทันสมัย จะพร้อมใช้งานสำหรับผู้ใช้ทุกคนที่มีสิทธิ์การควบคุมเต็มรูปแบบ) ถ้าเป็นเช่นนั้น ไม่ต้องกังวล - ไซต์ย่อยที่ถูกลบใน SharePoint Online จะถูกย้ายไปยังถังรีไซเคิลขั้นที่สอง และผู้ดูแลระบบไซต์คอลเลกชันสามารถคืนค่าได้ โพสต์ในบล็อกนี้จะแนะนำคุณตลอดขั้นตอนที่จำเป็นในการกู้คืนไซต์ย่อยที่ถูกลบใน SharePoint Online เราจะใช้วิธีถังรีไซเคิลของ SharePoint และ PowerShell เพื่อคืนค่าไซต์ย่อย
เมื่อต้องการคืนค่าไซต์ย่อยที่ถูกลบใน SharePoint ให้ทำตามขั้นตอนเหล่านี้:
- เข้าสู่ระบบคอลเลกชันไซต์ SharePoint Online ในฐานะผู้ดูแลไซต์คอลเลกชัน
- คลิกที่ไอคอนรูปเฟืองการตั้งค่า >> ข้อมูลไซต์ >> ดูการตั้งค่าไซต์ทั้งหมด
- คลิกที่ "ถังรีไซเคิล" ใต้การดูแลไซต์คอลเลกชันเพื่อเข้าสู่ถังรีไซเคิลของไซต์คอลเลกชัน
- คลิกที่ลิงก์ “ถังรีไซเคิลขั้นที่สอง” และเลือกไซต์ย่อยที่ต้องการโดยคลิกช่องทำเครื่องหมายของไซต์ย่อย (URL ถังรีไซเคิลขั้นที่สอง: https://
.sharepoint.com/sites/Marketing/_layouts /15/AdminRecycleBin.aspx?view=13) - คลิกปุ่ม "กู้คืน" ในแถบคำสั่งเพื่อเริ่มกู้คืนไซต์ย่อย และคุณจะมีไซต์ย่อยสำรองและทำงานได้ทันที
ตามค่าเริ่มต้น ไซต์ SharePoint ที่ถูกลบจะถูกเก็บรักษาไว้เป็นเวลา 93 วันในถังรีไซเคิล หากคุณไม่พบไซต์ย่อยของคุณใต้ถังรีไซเคิล - ไซต์ของคุณอาจถูกลบอย่างสมบูรณ์! ดังนั้น คุณจะเหลือเพียงการคืนค่าการสำรองฐานข้อมูลเนื้อหาในสภาพแวดล้อม SharePoint On-premises หรือเพิ่มตั๋วสนับสนุนด้วย Microsoft สำหรับ SharePoint Online คำแนะนำในการกู้คืนไซต์อาจแตกต่างกันเล็กน้อยสำหรับไซต์สมัยใหม่/ไซต์กลุ่ม
กู้คืนไซต์ย่อยที่ถูกลบจากถังรีไซเคิลโดยใช้ PowerShell
ฉันจะกู้คืนไซต์ย่อยที่ถูกลบด้วย PowerShell ได้อย่างไร ต่อไปนี้เป็นวิธีคืนค่าไซต์ย่อยที่ถูกลบใน SharePoint Online โดยใช้ PowerShell:
#Load SharePoint Online Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Variables for Processing
$SiteUrl = "https://crescent.sharepoint.com/sites/Marketing"
$DeletedSubsiteURL="/sites/marketing/2018/docs"
#Get the credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
Try {
#Setup the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Context.Credentials = $Credentials
#Get the Admin recycle bin
$Site = $Context.Site
$RecycleBinItems = $Site.RecycleBin
$Context.Load($Site)
$Context.Load($RecycleBinItems)
$Context.ExecuteQuery()
#Frame DirName (Parent Site URL) and LeafName (Subsite URL)
$DirName=$DeletedSubsiteURL.Substring(1,$DeletedSubsiteURL.LastIndexOf("/")-1)
$LeafName=$DeletedSubsiteURL.Substring($DeletedSubsiteURL.LastIndexOf("/")+1)
#Get the deleted subsite from Recycle bin
$DeletedSubsite = $RecycleBinItems | Where { ($_.DirName -eq $DirName) -and ($_.LeafName -eq $LeafName)}
If($DeletedSubSite -ne $Null)
{
#Restore the first subsite found from Recylce bin
$DeletedSubSite[0].Restore()
$Context.ExecuteQuery()
Write-Host -f Green "Deleted Subsite restored Successfully!"
}
else
{
Write-Host -f Yellow "Deleted Subsite Not Found in Recycle Bin!"
}
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
เมื่อไซต์ย่อยได้รับการกู้คืนไปยังปลายทางแล้ว คุณจะสามารถเข้าถึงไซต์ย่อยและเนื้อหาไซต์ที่เกี่ยวข้องด้วยไฟล์ต้นฉบับได้ เช่นเดียวกับที่คุณเคยทำมาก่อน
SharePoint Online: PnP PowerShell เพื่อกู้คืนไซต์ย่อยที่ถูกลบ
ลองใช้คำสั่ง PnP PowerShell Restore-PnPRecycleBinItem เพื่อคืนค่าไซต์ย่อย SharePoint Online สคริปต์ PowerShell นี้เชื่อมต่อกับไซต์ SharePoint Online ก่อน จากนั้น รับไซต์ย่อยที่ถูกลบทั้งหมดด้วย cmdlet “Get-PnPRecycleBinItem” รวมถึงไซต์ย่อยที่คุณต้องการคืนค่า สุดท้าย คืนค่าไซต์ย่อย โดยใช้ PowerShell cmdlet “Restore-PnPRecycleBinItem” เพียงระบุ URL ของไซต์ย่อยและเรียกใช้สคริปต์ ไซต์ย่อยจะถูกคืนค่าไปยังตำแหน่งเดิม
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/Marketing"
$SiteTitle="Branding"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get Deleted Subsite
$DeletedSite = Get-PnPRecycleBinItem -RowLimit 500000 | Where { $_.Title -eq $SiteTitle -and $_.ItemType -eq "Web"}
#Restore Subsite
If($DeletedSite)
{
Restore-PnPRecycleBinItem -Identity $DeletedSite -Force -ErrorAction Stop
Write-Host -f Green "Subsite '$SiteTitle' restored successfully!"
}
Else
{
Write-host -f Yellow "Could not Find deleted Subsite:"$SiteTitle
}
หลังจากคืนค่าไซต์ย่อยแล้ว ให้ไปที่ URL ของไซต์ย่อยเพื่อตรวจสอบว่าได้รับการคืนค่าสำเร็จแล้ว หากคืนค่าไซต์ย่อยได้สำเร็จ คุณควรจะสามารถเข้าถึงได้และดูเนื้อหาและการตั้งค่าทั้งหมดที่มีอยู่ก่อนที่ไซต์ย่อยจะถูกลบ
เมื่อต้องการคืนค่าคอลเลกชันไซต์ SharePoint ใน SharePoint Online จากศูนย์การจัดการ SharePoint หรือ PowerShell ให้ใช้: SharePoint Online: วิธีคืนค่าไซต์คอลเลกชันที่ถูกลบโดยใช้ PowerShell
คำถามที่พบบ่อย:
ฉันจะคืนค่าเอกสารใน SharePoint Online ได้อย่างไร
หากต้องการคืนค่าเอกสารใน SharePoint Online ให้ทำตามขั้นตอนเหล่านี้: เข้าสู่ไซต์ SharePoint Online ของคุณ คลิกที่ไอคอนการตั้งค่า >> เลือก "เนื้อหาของไซต์" และคลิกลิงก์ถังรีไซเคิล เลือกแต่ละรายการที่คุณต้องการกู้คืนบนหน้าถังรีไซเคิลแล้วคลิกปุ่ม “กู้คืน ”
ข้อมูลเพิ่มเติม: SharePoint Online: กู้คืนรายการที่ถูกลบจากถังรีไซเคิลโดยใช้ PowerShell
จะคืนค่าโฟลเดอร์ที่ถูกลบใน SharePoint ได้อย่างไร
หากต้องการคืนค่าโฟลเดอร์ที่ถูกลบในไลบรารีเอกสาร SharePoint Online ให้นำทางไปยังไซต์ SharePoint ของคุณ >> คลิกที่รูปเฟืองการตั้งค่า และเลือกลิงก์ "เนื้อหาของไซต์" บนหน้าเนื้อหาของไซต์ คลิกลิงก์ถังรีไซเคิล เลือกโฟลเดอร์ที่จะกู้คืนจากถังรีไซเคิลและคลิกที่ปุ่ม “กู้คืน ” จากแถบเครื่องมือ
ข้อมูลเพิ่มเติม: กู้คืนโฟลเดอร์ที่ถูกลบใน SharePoint Online ด้วย PowerShell
ฉันจะลบไซต์ย่อยใน SharePoint Online โดยใช้ PowerShell ได้อย่างไร
ใช้วิธี CSOM “$web.DeleteObject()” เพื่อลบไซต์ย่อยใน Sharepoint Online ด้วย PnP PowerShell คุณสามารถใช้ cmdlet “Remove-PnPWeb” ได้
ข้อมูลเพิ่มเติม: PowerShell เพื่อลบไซต์ย่อยใน SharePoint Online
