当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 在术语库中创建术语

作者:精品下载站 日期:2024-12-14 21:02:39 浏览:14 分类:玩电脑

SharePoint Online:使用 PowerShell 在术语库中创建术语


要求:在 SharePoint Online 术语库中创建术语。

如何在 SharePoint Online 术语库中添加术语?

SharePoint Online 中的术语存储使您能够对数据进行分类和标准化。您可以定义类别并以术语、术语集和术语组的形式标记数据以进行分类。要在 SharePoint Online 术语库中创建新术语,请执行以下步骤:

  1. 导航到您的 SharePoint 管理中心网站。 (例如,https://tenant-admin.sharepoint.com
  2. 单击左侧导航菜单上的“术语库”链接。 (在新式 SharePoint 管理中心中,选择经典功能,然后单击术语库下的“打开”。)
  3. 展开并找到要在其中添加新术语的术语集。单击术语集标题中的小箭头>>单击“创建术语”选项。

    [玩转系统] SharePoint Online:使用 PowerShell 在术语库中创建术语

  4. 开始输入新术语,然后按 Enter 键完成术语创建。

要添加多个术语,只需在每个术语后按 ENTER 键即可。创建术语后,您可以为新术语指定其他属性。例如“描述”、“可用于标记”、“语言”等,在属性窗格中,完成后单击“保存”。

PowerShell 在 SharePoint Online 术语库中添加新术语:

因此,您可能希望使用 PowerShell 自动执行将术语添加到 SharePoint Online 术语库的任务。以下是使用 PnP PowerShell 添加术语的方法:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
  
#Variables for Processing
$AdminURL = "https://crescent-admin.sharepoint.com/"
$TermGroupName ="Regions"
$TermSetName="MENA"
$TermName="United Arab Emirates"

Try {
    #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($AdminURL)
    $Ctx.Credentials = $Credentials

    #Get the term store
    $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)
    $Ctx.Load($TermGroup)

    #Get the Term Set
    $TermSet = $TermGroup.TermSets.GetByName($TermSetName)
    $Ctx.Load($TermSet)

    #Check if the given term exists already
    $Terms = $TermSet.Terms
    $Ctx.Load($Terms)
    $Ctx.ExecuteQuery()
    $Term = $Terms | Where-Object {$_.Name -eq $TermName}
    
    If(-not $Term)
    {
        #Create Term
        $NewTerm = $TermSet.CreateTerm($TermName,1033,[System.Guid]::NewGuid().toString())
        $Ctx.Load($NewTerm)
        $Ctx.ExecuteQuery()
    
        Write-host "New Term '$TermName' Created Successfully!" -ForegroundColor Green
    }
    else
    {
        Write-host "Term '$TermName' Exists Already!" -ForegroundColor Yellow
    }
}
Catch {
    write-host -f Red "Error Creating Term!" $_.Exception.Message
}

PowerShell 将多个术语添加到 SharePoint Online 中的术语集:

上述脚本将单个术语添加到术语库中的特定术语集中。让我们向术语集中添加多个术语。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
  
#Variables for Processing
$AdminURL = "https://crescent-admin.sharepoint.com/"
$TermGroupName ="Regions"
$TermSetName="MENA"
$TermsToAdd =@("Bahrain", "Egypt", "Iran", "Iraq", "Jordan", "Kuwait", "Lebanon", "Oman", "Palestine", "Qatar", "Saudi Arabia", "Syria", "Turkey", "United Arab Emirates", "Yemen")

Try {
    #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($AdminURL)
    $Ctx.Credentials = $Credentials

    #Get the term store
    $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)
    $Ctx.Load($TermGroup)

    #Get the Term Set
    $TermSet = $TermGroup.TermSets.GetByName($TermSetName)
    $Ctx.Load($TermSet)

    #Create Terms
    Foreach ($TermName in $TermsToAdd)
    {
        #Check if the given term exists already
        $Terms = $TermSet.Terms
        $Ctx.Load($Terms)
        $Ctx.ExecuteQuery()
        $Term = $Terms | Where-Object {$_.Name -eq $TermName}
    
        If(-not $Term)
        {
            #Create new Term
            $NewTerm = $TermSet.CreateTerm($TermName,1033,[System.Guid]::NewGuid().toString())
            $Ctx.ExecuteQuery()
            $TermStore.CommitAll()
    
            Write-host "New Term '$TermName' Added Successfully!" -ForegroundColor Green
        }
        else
        {
            Write-host "Term '$TermName' Exists Already!" -ForegroundColor Yellow
        }
    }
}
Catch {
    write-host -f Red "Error Creating Term!" $_.Exception.Message
}

SharePoint Online:使用 PnP PowerShell 创建术语

让我们使用 PnP PowerShell 将术语添加到 SharePoint Online 中的术语集:


#Config Variables
#$SiteURL = "https://Crescent.sharepoint.com"
$AdminCenterURL = "https://Crescent-admin.sharepoint.com"
$TermGroupName = "Regions"
$TermSetName = "MENA"
$TermName="United Arab Emirates"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Check if Term exists
If(-Not(Get-PnPTerm -Identity $TermName -TermSet $TermSetName -TermGroup $TermGroupName -ErrorAction SilentlyContinue))
{
    #Create new Term
    New-PnPTerm -Name $TermName -TermSet $TermSetName -TermGroup $TermGroupName
}
Else
{
    Write-host -f Yellow "Term '$TermName' already exists!"
} 

如果给定的术语组或术语集不存在怎么办?好吧,你最终会犯错误!因此,您可以采取以下缓解措施:以下 PnP PowerShell 导入术语库数据。它创建术语组、术语集和术语(如果它们尚不存在!)


#Config Variables
$AdminCenterURL = "https://Crescent-admin.sharepoint.com"
$Taxonomy= "Deals Pipeline|Regions|South America" #Format: Term Group|Termset|Term

#Connect to PnP Online
Connect-PnPOnline -Url $AdminCenterURL -Credentials (Get-Credential)

#Import Term store Group, Term Set and Terms
Import-PnPTaxonomy -Terms $Taxonomy

Import-PnPTaxonomy 还支持从数组甚至文本文件导入!例如。,


$Taxonomy= "Deals Pipeline|Regions|Africa","Deals Pipeline|Regions|South America","Deals Pipeline|Regions|North America"

总之,可以通过用户界面或 PowerShell 在 SharePoint Online 中创建术语。您可以使用上述方法轻松创建术语并定义其属性。术语是 SharePoint Online 中托管元数据服务的重要组成部分,可用于对内容进行分类和组织。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯