SharePoint Online: ลบไซต์ย่อยโดยใช้ PowerShell
ข้อกำหนด: SharePoint Online PowerShell เพื่อลบไซต์ย่อย
จะลบไซต์ย่อยใน SharePoint Online ได้อย่างไร
มีไซต์ย่อยในสภาพแวดล้อม SharePoint Online ของคุณที่ไม่จำเป็นอีกต่อไปหรือไม่ บางทีมันอาจจะถูกสร้างขึ้นโดยไม่ได้ตั้งใจหรือไม่ได้ใช้อีกต่อไป หากเป็นเช่นนั้น เราสามารถลบมันและเพิ่มพื้นที่เก็บข้อมูลได้! ในโพสต์บนบล็อกนี้ ฉันจะแสดงขั้นตอนในการลบไซต์ย่อย และแบ่งปันตัวอย่างสคริปต์บางส่วนของวิธีการลบไซต์ย่อยใน SharePoint Online โดยใช้ PowerShell นี่เป็นวิธีที่ง่ายและรวดเร็วในการทำความสะอาดสภาพแวดล้อมของคุณ และสามารถทำได้ในเวลาเพียงไม่กี่นาที มาเริ่มกันเลย!
ผู้ใช้ใดๆ ที่มีสิทธิ์จัดการลำดับชั้นหรือการควบคุมทั้งหมดสามารถลบไซต์ใน SharePoint Online เมื่อไม่จำเป็นอีกต่อไป เมื่อต้องการลบไซต์ย่อยออกจาก SharePoint Online ให้ทำดังต่อไปนี้:
- เข้าสู่ระบบไซต์ SharePoint Online ของคุณ >> คลิกที่เกียร์การตั้งค่าไซต์ >> เลือก "การตั้งค่าไซต์"
คลิกที่ลิงก์ "ลบไซต์นี้" ใต้กลุ่ม "การกระทำในไซต์" (ถ้าคุณไม่เห็นลิงก์ “ลบไซต์นี้” นั่นหมายความว่าคุณไม่ได้รับอนุญาตให้ลบไซต์ หรือคุณอยู่บนไซต์ทีมหรือไซต์การติดต่อสื่อสารที่ทันสมัย!)
-
สิ่งนี้จะนำคุณไปสู่หน้า "ลบไซต์นี้" ในไซต์แบบคลาสสิก คลิกที่ปุ่ม "ลบ" และยืนยันการลบไซต์ย่อย
- และคุณจะได้รับข้อความ “เว็บไซต์ของคุณถูกลบแล้ว” ข้อความในอีกสักครู่
SharePoint Online: จะลบไซต์ย่อยได้อย่างไร
ในทำนองเดียวกัน บนไซต์ SharePoint สมัยใหม่ คุณสามารถคลิกที่ "การตั้งค่า" >> ข้อมูลไซต์ >> ลบไซต์
ยืนยันการลบโดยเลือก “ใช่ ลบไซต์นี้และเนื้อหาที่เกี่ยวข้อง” ช่องทำเครื่องหมายแล้วคลิกที่ปุ่ม "ลบ" เมื่อคุณลบไซต์ คุณจะลบทรัพยากรทั้งหมดที่เกี่ยวข้องกับไซต์ด้วย เช่น ไซต์ย่อย การตั้งค่าไซต์ ข้อมูลผู้ใช้ เนื้อหาของไซต์ เช่น เอกสาร ไลบรารีเอกสาร รายการ และข้อมูลรายการที่เกี่ยวข้องกับไซต์
ลบไซต์ย่อยของ SharePoint Online โดยใช้ไซต์และพื้นที่ทำงาน
คุณยังสามารถใช้ลิงก์ "ไซต์และพื้นที่ทำงาน" เพื่อลบไซต์ย่อยจำนวนมากใน SharePoint Online นี่คือวิธีการ:
- นำทางไปยังไซต์แม่ซึ่งมีไซต์ย่อยที่คุณต้องการลบ
- คลิกที่การตั้งค่าเกียร์ >> เลือกการตั้งค่าไซต์
- ในหน้าการตั้งค่าไซต์ ใต้ส่วนการดูแลไซต์ คลิกลิงก์ "ไซต์และพื้นที่ทำงาน"
- บนเพจไซต์และพื้นที่ทำงาน คลิกไอคอนลบถัดจากไซต์ย่อยที่ต้องการลบ
คลิกปุ่มลบ >> คลิกปุ่มตกลงเพื่อยืนยัน
ซึ่งเอาไซต์ย่อยใน SharePoint Online ออก การลบไซต์ย่อยทั้งหมดใน SharePoint Online เป็นงานที่น่ากังวล คุณสามารถทำได้ แต่เมื่อคุณมีไซต์ย่อยจำนวนมากใน Sharepoint Online การลบทีละรายการอาจเป็นเรื่องยุ่งยาก ดังนั้นเราจะแสดงวิธีการลบไซต์ย่อยใน SharePoint Online โดยใช้ PowerShell!
ถ้าคุณลบไซต์ย่อยผ่านทางส่วนติดต่อผู้ใช้บนเว็บโดยไม่ตั้งใจ (ไม่ใช่ผ่าน PowerShell!) ผู้ดูแลไซต์คอลเลกชันสามารถคืนค่าไซต์นั้นได้จากถังรีไซเคิลของไซต์คอลเลกชัน
ลบไซต์ย่อยใน SharePoint Online โดยใช้ PowerShell:
วิธีลบไซต์ย่อยใน SharePoint Online โดยใช้ PowerShell แม้ว่าการลบไซต์ย่อยใน SharePoint Online โดยใช้ UI ของเว็บเบราว์เซอร์จะค่อนข้างง่ายกว่า แต่เราอาจต้องใช้ PowerShell ในบางกรณี เช่น:
- เมื่อคุณต้องลบไซต์ย่อยจำนวนมาก
- หากคุณต้องการลบไซต์ย่อยที่มีไซต์ย่อย (คุณจะได้รับข้อผิดพลาดนี้: “มีปัญหาในการลบเว็บไซต์ “/sites/Sales/apac” ไซต์ที่มีไซต์ย่อยหรือบางแอปไม่สามารถทำได้ ถูกลบ โปรดลองอีกครั้งหลังจากลบไซต์ย่อยทั้งหมดและลบแอปแล้ว”)
นี่คือ PowerShell เพื่อลบไซต์ย่อยใน SharePoint Online:
#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/townhall2019/"
Try{
#Get Credentials to connect
$Cred= Get-Credential
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Get the subsite to delete
$web = $Ctx.Web
$Ctx.Load($web)
$Ctx.ExecuteQuery()
#sharepoint online powershell remove subsite
$web.DeleteObject()
$Ctx.ExecuteQuery()
Write-Host "Subsite Deleted:" $web.Title -foregroundcolor Green
}
Catch{
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
สคริปต์ PowerShell นี้เอาไซต์ย่อย SharePoint Online ออก โปรดทราบว่าวิธีการเหล่านี้จะลบไซต์ย่อยอย่างถาวรโดยไม่ต้องส่งไปยังถังรีไซเคิล (หรืออีกนัยหนึ่ง หากไม่สามารถกู้คืนไซต์ย่อยที่ถูกลบผ่าน 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://portal.sharepoint.com/sites/Sales/apac/us/"
$UserName="Salaudeen@crescent.com"
$Password ="password goes here"
#Function to delete a subsite and its all child sites
Function Remove-SPOWeb() {
param(
$WebURL = $(throw "Please Enter the Subsite URL to Remove:")
)
try{
#Setup Credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))
#Get Web information and subsites
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($webURL)
$Context.Credentials = $credentials
#get the subsite
$web = $context.Web
$context.Load($web)
$Context.Load($web.Webs)
$Context.executeQuery()
#Iterate through each subsite in the current web
foreach ($Subweb in $web.Webs)
{
#Call the function recursively to process all subsites underneaththe current web
Remove-SPOWeb($Subweb.url)
}
#sharepoint online powershell delete web
$web.DeleteObject()
$context.ExecuteQuery()
Write-Host "SubSite Deleted:" $web.Title -foregroundcolor Green
}
catch{
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
}
#Call the function to remove subsite
Remove-SPOWeb -WebURL $SiteUrl
PowerShell นี้จะลบไซต์ย่อยทั้งหมดในไซต์ SharePoint Online ด้วยโค้ดเพียงไม่กี่บรรทัด คุณสามารถประหยัดเวลาและความยุ่งยากได้มาก!
SharePoint Online PnP PowerShell เพื่อลบไซต์ย่อย
เมื่อต้องการลบไซต์ย่อยใน SharePoint Online โดยใช้ PnP PowerShell ให้ใช้: คำสั่ง Remove-PnPWeb PowerShell นี่คือวิธีการลบไซต์ย่อยโดยใช้ PnP PowerShell:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/Sales"
$SubsiteURL = "2018" # Just URL of the Subsite - NOT Relative Path
#Get Credentials to connect
$Cred = Get-Credential
#Connect PnP Online to Parent Web
Connect-PnPOnline -Url $SiteURL -Credentials $Cred
#sharepoint online delete subsite powershell
Remove-PnPWeb -Identity $SubsiteURL -Force
กระบวนการ Remove-PnPWeb cmdlet จะลบไซต์ย่อยที่ระบุอย่างถาวร อย่างไรก็ตาม หากไซต์ย่อยของคุณมีไซต์ย่อย สคริปต์จะลงเอยด้วยข้อผิดพลาดว่า:
Remove-PnPWeb : มีปัญหาในการลบเว็บไซต์ “/Sep” . ไซต์ที่มีไซต์ย่อยหรือบางแอปไม่สามารถลบได้ โปรดลองอีกครั้งหลังจากลบไซต์ย่อยทั้งหมดและลบแอปออกแล้ว
คุณจะได้รับข้อความที่คล้ายกันเมื่อคุณพยายามลบไซต์ที่มีไซต์ย่อยโดยใช้เว็บเบราว์เซอร์:
จะลบไซต์ที่มีไซต์ย่อยทั้งหมดโดยใช้ PnP PowerShell ได้อย่างไร
ในฐานะผู้ดูแลระบบ SharePoint คุณอาจต้องลบไซต์ย่อยทั้งหมดในไซต์คอลเลกชัน เราจะแสดงวิธีใช้ PowerShell เพื่อลบไซต์ย่อยทั้งหมดใน SharePoint Online นี่เป็นเคล็ดลับที่มีประโยชน์ หากคุณต้องการล้างโครงสร้างไซต์ของคุณ หรือหากคุณเริ่มต้นใหม่ทั้งหมดและต้องการกำจัดไซต์ย่อยที่มีอยู่ มาลบไซต์ย่อยระดับที่ 1 ทั้งหมดภายใต้ไซต์ที่กำหนด (หรือไซต์ย่อย) ใน SharePoint Online:
#Subsite URL
$SiteURL = "https://crescent.sharepoint.com/sites/BoardPapers/September2020"
#Connect to subsite
Connect-PnPOnline -Url $SiteURL -Interactive
#Get all subsites and remove them
Get-PnPSubWebs | Remove-PnPWeb -Force
วิธีการลบไซต์ย่อยทั้งหมดออกจากทุกระดับ? นี่คือ PnP PowerShell เพื่อลบไซต์ย่อยทั้งหมดแบบเรียกซ้ำใน SharePoint Online:
#Function to delete a subsite and its all child sites
Function Remove-PnPAllWebs([Microsoft.SharePoint.Client.Web]$Web)
{
#Get All Subsites of the web
$SubWebs = Get-PnPSubWeb -Identity $Web
ForEach($SubWeb in $SubWebs)
{
#Call the function recursively to remove subsites
Remove-PnPAllWebs($SubWeb)
}
#Delete the subsite
Remove-PnPWeb -Identity $Web -Force
Write-host -f Green "Deleted Sub-Site:"$Web.URL
}
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sales"
#Get Credentials to connect
$Cred = Get-Credential
#Connect PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred
#Get the Web
$Web = Get-PnPWeb
#sharepoint online powershell delete all subsites
Remove-PnPAllWebs $Web
เมื่อต้องการลบคอลเลกชันไซต์ SharePoint Online คุณสามารถใช้ศูนย์การจัดการ SharePoint Online ใน Microsoft 365 หรือ PowerShell: วิธีการลบคอลเลกชันไซต์ SharePoint Online
คำถามที่พบบ่อย:
วิธีปิดการใช้งานการสร้างไซต์ย่อยใน SharePoint Online
หากต้องการปิดใช้งานการสร้างไซต์ย่อยในไซต์ SharePoint Online ให้ทำดังต่อไปนี้: เข้าสู่ระบบ SharePoint Admin Center >> คลิกที่การตั้งค่า >> การตั้งค่าแบบคลาสสิก >> ภายใต้ส่วน "การสร้างไซต์ย่อย" ตั้งค่า "ซ่อนคำสั่งไซต์ย่อย" เพื่อปิดการสร้างไซต์ย่อย SharePoint ไซต์ทั้งหมด จากนั้นคลิกที่ปุ่ม “บันทึก ” ที่ด้านล่างของหน้าเพื่อยอมรับการเปลี่ยนแปลงของคุณ
ข้อมูลเพิ่มเติม: ปิดใช้งานการสร้างไซต์ย่อยใน SharePoint Online
จะสร้างไซต์ย่อยที่ทันสมัยใน SharePoint Online ได้อย่างไร
เมื่อต้องการเพิ่มไซต์ย่อยใน SharePoint Online ให้ทำตามขั้นตอนเหล่านี้:
ลงชื่อเข้าใช้ไซต์ SharePoint Online ของคุณ >> คลิกที่ไอคอนรูปเฟืองการตั้งค่าไซต์ >> เลือก "เนื้อหาของไซต์" บนแถบเครื่องมือ คลิกที่ "ใหม่" และคลิกที่ลิงก์ "ไซต์ย่อย " (ทางลัด URL: /_layouts/15/newsbweb.aspx) ระบุชื่อ คำอธิบาย URL และเทมเพลตสำหรับไซต์ย่อยใหม่ของคุณ ระบุการตั้งค่าเพิ่มเติมอื่นๆ เช่น สิทธิ์และการนำทาง คลิกปุ่ม "สร้าง" ที่ด้านล่างของหน้าเพื่อสร้างไซต์ย่อยใน SharePoint Online
ข้อมูลเพิ่มเติม: เพิ่มไซต์ย่อยใน SharePoint Online
ฉันจะกู้คืนไซต์ย่อยที่ถูกลบใน SharePoint Online ได้อย่างไร
หากต้องการคืนค่าไซต์ย่อย: เข้าสู่ระบบคอลเลกชันไซต์ SharePoint Online ในฐานะผู้ดูแลไซต์คอลเลกชัน ไปที่การตั้งค่าไซต์ >> คลิกที่ "ถังรีไซเคิล" ใต้การดูแลไซต์คอลเลกชัน >> คลิกที่ "ถังรีไซเคิลขั้นที่สอง" >> เลือกไซต์ย่อยที่ถูกลบ และคลิกที่ปุ่ม "กู้คืน" เพื่อกู้คืนไซต์ย่อย คุณสามารถใช้ PowerShell ได้เช่นกัน
ข้อมูลเพิ่มเติม: SharePoint Online: คืนค่าไซต์ย่อยที่ถูกลบจากถังรีไซเคิลโดยใช้ PowerShell
ไซต์ SharePoint ที่ถูกลบสามารถอยู่ในถังรีไซเคิลได้นานแค่ไหน
93 วันใน SharePoint Online!




