Búsqueda de sitios web

SharePoint Online: obtenga todos los términos de un conjunto de términos mediante PowerShell


Requisito: PowerShell para obtener todos los términos de un conjunto de términos en SharePoint Online.

SharePoint Online: obtener términos de un conjunto de términos mediante PowerShell

En SharePoint Online, los términos se utilizan para clasificar y organizar el contenido de forma jerárquica, mediante un conjunto de términos predefinidos. Si está trabajando con SharePoint Online y necesita recuperar todos los términos de un conjunto de términos, PowerShell puede ser una herramienta poderosa para automatizar el proceso. En esta publicación de blog, veamos cómo puede usar PowerShell para obtener términos de un conjunto de términos en 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" 

#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 para obtener todos los términos de un conjunto de términos en SharePoint Online

A continuación se explica cómo obtener términos de un conjunto de términos utilizando 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" 

Resultado:

Get-PnPTerm también admite -IncludeChildTerms -¡Parámetros recursivos! Exportemos todos los términos de un conjunto de términos a un archivo 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

Siguiendo estos pasos, puede obtener todos los términos de un término establecido en SharePoint Online usando PowerShell. Esta puede ser una forma útil de administrar su contenido de SharePoint y automatizar tareas, como crear informes o actualizar metadatos.

Artículos relacionados