Skip to main content

PowerShell CSOM code to export term set from 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"

   

#Variables for Processing

$AdminURL = "https://abc-admin.sharepoint.com"

$ReportOutput="C:\Temp\TermStoreData.csv"

 

Try {

    #Get Credentials to connect

    $Cred = Get-Credential

    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)


    Connect-SPOService -Url https://mmibi-admin.sharepoint.com #-Credential $Creds 

    Connect-MsolService #-Credential $Creds

 

    #Setup the context

    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminURL)

    $Ctx.Credentials = $Credentials

 

     #Array to Hold Result - PSObjects

    $ResultCollection = @()

 

    #Get the term store

    $TaxonomySession=[Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Ctx)

    $TermStore =$TaxonomySession.GetDefaultSiteCollectionTermStore()

    $Ctx.Load($TaxonomySession)

    $Ctx.Load($TermStore)

    $Ctx.ExecuteQuery()

 

    #Get all term groups  

    $TermGroups = $TermStore.Groups

    $Ctx.Load($TermGroups)

    $Ctx.ExecuteQuery()

 

    #Iterate through each term group

    Foreach($Group in $TermGroups)

    {

        #Get all Term sets in the Term group

        $TermSets = $Group.TermSets

        $Ctx.Load($TermSets)

        $Ctx.ExecuteQuery()

 

        #Iterate through each termsset

        Foreach($TermSet in $TermSets)

        {

            #Get all Terms from the term set

            $Terms = $TermSet.Terms

            $Ctx.Load($Terms)

            $Ctx.ExecuteQuery()

 

            #Iterate through each term

            Foreach($Term in $Terms)

            {

                $TermData = new-object PSObject

                $TermData | Add-member -membertype NoteProperty -name "Group" -Value $Group.Name

                $TermData | Add-member -membertype NoteProperty -name "TermSet" -Value $Termset.Name

                $TermData | Add-member -membertype NoteProperty -name "Term" -Value $Term.Name  

                $ResultCollection += $TermData

            }

        }

    }

    #export term store sharepoint online powershell

    $ResultCollection | Export-csv $ReportOutput -notypeinformation

 

    Write-host "Term Store Data Successfully Exported!" -ForegroundColor Green  

}

Catch {

    write-host -f Red "Error Exporting Termstore Data!" $_.Exception.Message

}

Note: If need any help please reach out to me at kamal_pandey@outlook.com 

 I would be very happy to help. 

Comments

Popular posts from this blog

Build and Deploy a custom theme in SharePoint 2019: Using C# and Site features

Custom Theme and Branding are common to use cases and all kinds of business users like to have the personalized team and collaboration sites. today I am posting C# code that will help to build custom features for SharePoint 2019 site.   If need any assistance, I would be happy to help: kamal_pandey@outlook.com  ----------------------------- Code to build  custom features---------- using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.SharePoint; using Microsoft.SharePoint.Utilities; namespace SharePointBranding.Code {     public class BrandingManager     {         public SPWeb Web { get; set; }         public BrandingManager(SPWeb web)         {             Web = web;         }         public void SetMasterPage(stri...

PowerShell For create Sub site in office 365

#Add references to SharePoint client assemblies and authenticate to Office 365 site Add-Type -Path "\Software\SharePoint 2013 Client Browser v1.7\Microsoft.SharePoint.Client.dll" Add-Type -Path "\Software\SharePoint 2013 Client Browser v1.7\Microsoft.SharePoint.Client.Runtime.dll" $Username = Read-Host -Prompt "Please enter your username" $Password = Read-Host -Prompt "Please enter your password" -AsSecureString $Site = "https://XXXXXXX.sharepoint.com/sites/Test2/" $Context = New-Object Microsoft.SharePoint.Client.ClientContext($Site) $Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username,$Password) $Context.Credentials = $Creds $csvLocation = "C:\Users\PS_SiteCollectionsToCreate.csv" $csv = Import-Csv $csvLocation #List Custom Templates $Templates = $Context.Site.GetWebTemplates("1033","0") $Context.Load($Templates) $Context.ExecuteQuery() $Templates | Whe...