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

[玩转系统] SharePoint Online:使用 PowerShell 从术语集中获取所有术语

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

SharePoint Online:使用 PowerShell 从术语集中获取所有术语


要求:PowerShell 从 SharePoint Online 中的术语集中获取所有术语。

[玩转系统] SharePoint Online:使用 PowerShell 从术语集中获取所有术语

SharePoint Online:使用 PowerShell 从术语集中获取术语

在 SharePoint Online 中,术语用于使用一组预定义术语按层次结构对内容进行分类和组织。如果您使用 SharePoint Online 并需要检索术语集中的所有术语,PowerShell 可以成为自动化该过程的强大工具。在这篇博文中,我们来看看如何使用 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" 

#Function to recursively get all child terms from a Term
Function Get-SPOTerm([Microsoft.SharePoint.Client.Taxonomy.Term]$Term)
{
    Write-host $Term.Name
    #Get All child terms
    $ChildTerms = $Term.Terms
    $Ctx.Load($ChildTerms)
    $Ctx.ExecuteQuery()

    #Process all child terms
    Foreach ($ChildTerm in $ChildTerms)
    {
        $Indent = $Indent +"`t"
        Write-host $Indent -NoNewline
        Get-SPOTerm($ChildTerm)
    }
    $Indent = "`t"
}

#Parameters
$AdminCenterURL = "https://crescent-admin.sharepoint.com"
$TermGroupName="Deals Pipeline"
$TermsetName="Dealstage"

#Get Credentials to connect
$Cred= Get-Credential
 
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminCenterURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

#Get the taxonomy session and termstore
$TaxonomySession = [Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Ctx)
$TermStore =$TaxonomySession.GetDefaultSiteCollectionTermStore()
$Ctx.Load($TaxonomySession)
$Ctx.Load($TermStore)
 
#Get the Term Group    
$TermGroup = $TermStore.Groups.GetByName($TermGroupName)
$Ctx.Load($TermGroup)
 
#Get the termset
$TermSet = $TermGroup.TermSets.GetByName($TermSetName)
$Ctx.Load($TermSet)
$Ctx.ExecuteQuery()

#Get all terms
$TermColl=$TermSet.Terms
$Ctx.Load($TermColl)
$Ctx.ExecuteQuery()

# Loop through all the terms
Foreach($Term in $TermColl)
{
    #Get the terms recursively
    Get-SPOTerm($Term)
}

PnP PowerShell 从 SharePoint Online 中的术语集中获取所有术语

以下是如何使用 PnP PowerShell 从术语集中获取术语:


#Config Variables
$AdminCenterURL = "https://crescent-admin.sharepoint.com"

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

#Get All Terms from a Term Set
Get-PnPTerm -TermSet "DealStage" -TermGroup "Deals Pipeline" 

结果:

[玩转系统] SharePoint Online:使用 PowerShell 从术语集中获取所有术语

Get-PnPTerm 还支持 -IncludeChildTerms -Recursive 参数!让我们将术语集中的所有术语导出到 CSV 文件:


#Parameters
$AdminCenterURL = "https://crescent-admin.sharepoint.com"

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

#Get All Terms from a Term Set
Get-PnPTerm -TermGroup "Deals Pipeline" -TermSet "Job Titles" | Select Name | Export-Csv "C:\Temp\Terms.csv" -NoTypeInformation

按照这些步骤,您可以使用 PowerShell 从 SharePoint Online 中的术语集中获取所有术语。这可能是管理 SharePoint 内容和自动执行任务(例如创建报告或更新元数据)的有用方法。

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

取消回复欢迎 发表评论:

关灯