Đã xảy ra sự cố khi xóa trang Web "Site-URL". Không thể xóa các trang web có trang con hoặc ứng dụng nhất định. Vui lòng thử lại sau khi xóa tất cả các trang con và xóa ứng dụng.
Sự cố: Nếu bạn cố xóa một trang SharePoint Online có các trang con trong đó, SharePoint sẽ đưa ra thông báo lỗi cho biết
“Đã xảy ra sự cố xóa trang Web “
Giải pháp:
Vì vậy, về cơ bản, SharePoint Online cho chúng ta biết: Trước tiên, bạn phải xóa tất cả các trang con để xóa trang mẹ của nó. Xóa một trang con chỉ là một vài cú nhấp chuột:
- Điều hướng đến Trang con >> Chuyển đến Cài đặt trang >> Nhấp vào liên kết “Xóa trang này” trong nhóm hành động của trang.
Xác nhận lời nhắc một lần.
Tuy nhiên, khi bạn có số lượng trang con lớn hơn (giả sử: 50!), việc xóa mọi trang con bằng giao diện trình duyệt sẽ rất cồng kềnh và tốn thời gian. Vì vậy, giải pháp là PowerShell!
PowerShell để xóa trang con trong SharePoint Online:
#Load SharePoint CSOM 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"
#Set Parameters
$SiteURL="https://crescent.sharepoint.com/sites/Ops/us/2017"
#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
$Ctx.web.DeleteObject()
$Ctx.ExecuteQuery()
write-host -f Green "Subsite Deleted Successfully "$SiteURL
Tập lệnh PowerShell này xóa trang web đã cho, không có trang con nào bên dưới. Hãy thêm một số mã xử lý lỗi và gói nó vào trong một hàm có thể tái sử dụng. Tập lệnh PowerShell bên dưới sẽ xóa đệ quy một trang web và tất cả các trang con của nó.
SharePoint Online: Xóa một trang web cùng với tất cả các trang con của nó bằng PowerShell:
Đây là tập lệnh PowerShell để xóa tất cả các trang con khỏi trang SharePoint Online
#Load SharePoint CSOM 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"
#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Custom Function to Delete a site with subsites
Function SPODelete-Subsite ($SiteURL)
{
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
$web = $Ctx.Web
$Ctx.Load($web)
#Get all subsites under given site
$Ctx.Load($web.Webs)
$Ctx.ExecuteQuery()
#Loop through each subsite in the current web
foreach ($SubWeb in $web.Webs)
{
#Call the function recursively to delete all subsites under current site
SPODelete-Subsite($Subweb.url)
}
#Delete the subsite
$web.DeleteObject()
$Ctx.ExecuteQuery()
write-host -f Green "Subsite Deleted Successfully "$SiteURL
}
Catch {
write-host -f Red "Error Deleting Subsite $($SiteURL)" $_.Exception.Message
}
}
#Set Parameters
$SiteURL="https://crescent.sharepoint.com/sites/Ops/us"
#Call the function to delete site with subsites
SPODelete-Subsite -SiteURL $SiteURL
Đây là bài viết khác của tôi về việc xóa các trang con trong SharePoint Online: Làm cách nào để xóa các trang con trong SharePoint Online bằng PowerShell?

