Tìm kiếm trang web

SharePoint Online: Loại bỏ Loại Nội dung khỏi Tất cả Danh sách trong Tuyển tập Trang bằng PowerShell


Yêu cầu: Xóa Loại Nội dung khỏi Tất cả Danh sách và Thư viện trong Bộ sưu tập Trang web SharePoint Online.

PowerShell để xóa loại nội dung khỏi tất cả danh sách và thư viện trong tuyển tập trang

Trong SharePoint Online, có thể đôi khi bạn muốn loại bỏ một kiểu nội dung khỏi tất cả các danh sách trong tuyển tập trang. Ví dụ: có thể bạn đã tạo một kiểu nội dung và sau đó nhận ra rằng đó không phải là lựa chọn tốt nhất hoặc bạn muốn ngăn người dùng thêm các mục thuộc loại đó vào danh sách trên trang. Việc này có thể được thực hiện thủ công thông qua giao diện người dùng SharePoint nhưng có thể tốn thời gian. Trong bài đăng này, tôi sẽ chỉ cho bạn cách xóa loại nội dung khỏi tất cả các danh sách trong tuyển tập trang bằng PowerShell.

Tập lệnh PowerShell này lặp qua tất cả các danh sách và thư viện của một tuyển tập trang nhất định, quét loại nội dung được cung cấp và loại bỏ nó nếu có bất kỳ mục cơ bản nào không sử dụng nó!


#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"
 
#Function to remove content type from a site collection
Function Remove-SPOContentType([String]$SiteURL, [String]$ContentTypeName)
{
    Try{
        Write-host -f Yellow "Processing Site:" $SiteURL
 
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
     
        #Get All Lists of the Web
        $Ctx.Load($Ctx.Web)
        $Ctx.Load($Ctx.Web.Lists)
        $Ctx.Load($ctx.Web.Webs)
        $Ctx.ExecuteQuery()
 
        #Get content types of each list from the web
        ForEach($List in $Ctx.Web.Lists)
        {
            $ContentTypes = $List.ContentTypes
            $Ctx.Load($ContentTypes)
            $Ctx.ExecuteQuery()             

            #Get each content type data
            ForEach($CType in $ContentTypes)
            {
                If($CType.Name -eq $ContentTypeName)
                {
                    Try{
                        #Remove Content Type from List
                        $CType.DeleteObject()
                        $Ctx.ExecuteQuery()
                        Write-host -f Green "Removed Content Type from List/Library:" $List.Title
                        }
                    Catch {
                    write-host -f Red "`tError Removing Content Type from '$($List.Title)' :" $_.Exception.Message
                    }
                }
            }
        }
 
         #Iterate through each subsite of the current web and call the function recursively
        foreach ($Subweb in $Ctx.web.Webs)
        {
            #Call the function recursively to process all subsites underneaththe current web
            Remove-SPOContentType $Subweb.url $ContentTypeName
        }
    }
    Catch {
    write-host -f Red "Error Removing Content Type:" $_.Exception.Message
    }
}
 
#Config Parameters
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$ContentTypeName="Project Proposal"
 
#Get Credentials to connect
$Cred= Get-Credential
 
#Call the function to get the content type usage
Remove-SPOContentType -SiteURL $SiteURL -ContentTypeName $ContentTypeName

Phương pháp này nhanh hơn và hiệu quả hơn so với việc loại bỏ thủ công các loại nội dung khỏi danh sách thông qua giao diện người dùng. Bằng cách sử dụng PowerShell, bạn có thể tự động hóa quy trình và đảm bảo rằng các kiểu nội dung được loại bỏ một cách nhất quán trên tất cả các danh sách trong tuyển tập trang.

Bài viết liên quan:

  • SharePoint Online: Loại bỏ loại nội dung khỏi danh sách bằng PowerShell
  • SharePoint Online: Tìm cách sử dụng Loại Nội dung trong Tuyển tập Trang bằng PowerShell

Bài viết liên quan