Tìm kiếm trang web

SharePoint Online: Tạo Cột Trang Siêu dữ liệu được Quản lý bằng PowerShell


Yêu cầu: Thêm Cột Trang web Siêu dữ liệu được Quản lý trong SharePoint Online bằng PowerShell.

Làm cách nào để tạo Cột trang web siêu dữ liệu được quản lý trong SharePoint Online?

Siêu dữ liệu được quản lý là một tính năng trong SharePoint cho phép người dùng tạo và quản lý từ vựng thuật ngữ được kiểm soát để tổ chức và phân loại nội dung. Các cột của trang trong SharePoint cung cấp một cách có thể sử dụng lại để lưu trữ siêu dữ liệu và có thể được dùng để xác định cấu trúc của các kiểu nội dung và danh sách. Trong bài viết này, chúng ta sẽ khám phá cách sử dụng PowerShell để tạo cột trang siêu dữ liệu được quản lý trong SharePoint.

Cột Siêu dữ liệu được quản lý trong SharePoint Online sử dụng Tập hợp thuật ngữ từ kho thuật ngữ làm nguồn cho các giá trị được phép của nó. Tập hợp thuật ngữ xác định một tập hợp các giá trị. Ví dụ: “Khu vực” là một tập hợp Thuật ngữ và “Châu Á” là một Thuật ngữ. Vì vậy, khi tập hợp thuật ngữ “Khu vực” được sử dụng làm nguồn cho cột trang Siêu dữ liệu được quản lý thì thuật ngữ “Châu Á” có thể là giá trị của nó. Đây là cách thêm cột trang siêu dữ liệu được quản lý vào danh sách SharePoint Online.

  1. Duyệt đến trang SharePoint Online của bạn và điều hướng đến cài đặt trang >> Cột trang
  2. Nhấp vào liên kết “Tạo” ở đầu trang
  3. Cung cấp Tên cho cột trang web của bạn, chỉ định loại trường là “Siêu dữ liệu được quản lý”

  4. Cuộn xuống và chọn Tập hợp thuật ngữ thích hợp từ kho thuật ngữ.

  5. Điền vào các giá trị tùy chọn khác và nhấp vào “OK” để tạo cột trang Siêu dữ liệu được quản lý trong SharePoint Online.

PowerShell để tạo cột trang web siêu dữ liệu được quản lý trong SharePoint Online

Dưới đây là cách tạo cột siêu dữ liệu được quản lý 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"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"

#Custom function to add Managed Metadata Site Column
Function Add-SPOManagedMetadataSiteColumn()
{ 
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $ColumnName,        
        [Parameter(Mandatory=$true)] [string] $DisplayName,
        [Parameter(Mandatory=$false)] [string] $Description = [string]::Empty,
        [Parameter(Mandatory=$false)] [string] $IsRequired = $False,
        [Parameter(Mandatory=$false)] [string] $EnforceUniqueValues = $False,
        [Parameter(Mandatory=$true)] [string] $ColumnGroup,
        [Parameter(Mandatory=$true)] [string] $TermGroupName,
        [Parameter(Mandatory=$true)] [string] $TermSetName
    )
 
    #Generate new GUID for Field ID
    $FieldID = ([GUID]::NewGuid()).GUID
 
    Try {
        $Cred= Get-Credential
 
        #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 Site columns from the site
        $Fields = $Ctx.web.Fields
        $Ctx.Load($Fields)
        $Ctx.executeQuery()
 
        #Check if the column name exists
        $NewField = $Fields | where {$_.Title -eq $DisplayName -or $_.InternalName -eq $ColumnName} 
        if($NewField -ne $NULL)  
        {
            Write-host "Site Column $ColumnName already exists!" -f Yellow
        }
        else
        {
            #Create Managed Metadata Column
            $FieldSchema = "<Field Type='TaxonomyFieldType' ID='{$FieldID}' DisplayName='$DisplayName' Name='$ColumnName' Description='$Description' Required='$IsRequired' EnforceUniqueValues='$EnforceUniqueValues' Group='$ColumnGroup'/>"
            $NewField = $Fields.AddFieldAsXml($FieldSchema,$True,[Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
            $Ctx.ExecuteQuery()    
 
            Write-host "Site Column Created Successfully!" -ForegroundColor Green  

            #Get the Termset to Bind
            $TaxonomySession=[Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Ctx) 
            $TermStore =$TaxonomySession.GetDefaultSiteCollectionTermStore()
            $Ctx.Load($TaxonomySession)
            $Ctx.Load($TermStore)
            $Ctx.ExecuteQuery() 
            #Get the Term Group
            $TermGroup=$TermStore.Groups.GetByName($TermGroupName)
            #Get the term set
            $TermSet = $TermGroup.TermSets.GetByName($TermSetName)
            $Ctx.Load($TermSet)
            $Ctx.ExecuteQuery() 
 
            #Bind Managed Metadata Termset to the column
            $TaxField = [Microsoft.SharePoint.Client.ClientContext].GetMethod("CastTo").MakeGenericMethod([Microsoft.SharePoint.Client.Taxonomy.TaxonomyField]).Invoke($Ctx, $NewField)
            $TaxField.SspId = $TermStore.Id
            $TaxField.TermSetId = $TermSet.Id
            $TaxField.Update()
            $Ctx.ExecuteQuery()
 
            Write-host "Site Column Binded to the Termset Successfully!" -ForegroundColor Green
        }
    }
    Catch {
        write-host -f Red "Error Creating Site Column!" $_.Exception.Message
    }
}
 
#Define value for parameters
$SiteURL="https://Crescent.sharepoint.com"
$ColumnName="ProjectRegion"
$DisplayName="Project Regions"
$ColumnGroup="Crescent Projects"
$TermGroupName="Deals Pipeline"
$TermSetName="Regions"
 
#Call the function to create Managed Metadata Site Column
Add-SPOManagedMetadataSiteColumn -SiteURL $SiteURL -ColumnName $ColumnName -DisplayName $DisplayName -ColumnGroup $ColumnGroup -TermGroupName $TermGroupName -TermSetName $TermSetName

Tập lệnh này tạo một cột trang mới, “Khu vực dự án” và ánh xạ tới tập hợp thuật ngữ “Khu vực” trong nhóm “Giao dịch” trong Kho thuật ngữ.

PnP PowerShell để thêm cột trang web siêu dữ liệu được quản lý trong SharePoint Online

Dưới đây là cách thêm trường siêu dữ liệu được quản lý bằng PnP PowerShell:


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

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

#Create a Managed Metadata column from "Regions" term set in "Deals Pipeline" Group
Add-PnPTaxonomyField -DisplayName "Region" -InternalName "Region" -TermSetPath "Deals Pipeline|Regions"

Kết thúc

Tóm lại, việc tạo các cột trang siêu dữ liệu được quản lý trong SharePoint là một cách hiệu quả để lưu trữ và quản lý siêu dữ liệu một cách nhất quán và được kiểm soát. Sử dụng PowerShell để tạo các cột trang này là một phương pháp nhanh chóng và hiệu quả giúp đơn giản hóa quy trình và tránh các lỗi thủ công.

Bài viết liên quan