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

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...

Create bulk Sub site Using power shell script using custom SharePoint template

#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://xxxx.sharepoint.com/sites/sPOTest2/" $Context = New-Object Microsoft.SharePoint.Client.ClientContext($Site) $Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username,$Password) $Context.Credentials = $Creds $csvLocation = "C:\Users\AA82211\Desktop\PS_SiteCollectionsToCreate.csv" $csv = Import-Csv $csvLocation #List Custom Templates $Templates = $Context.Site.GetWebTemplates("1033","0") $Context.Load($Templates) $Context.ExecuteQuery() $...

Business-critical processes with SharePoint and SQL

SharePoint 2010 provides the ability to connect to backend business systems, surface business data in SharePoint and make it accessible by, and useful to, employees across the organization. Almost every company of significant size uses ERP and CRM solutions to run core business processes. Over time, companies have developed detailed practices around using such systems to support vertical disciplines within the organization (e.g. product planning, financial performance management, supply-chain management, etc.),  yet challenges remain with regard to driving visibility and collaboration, based on business data, across different disciplines and teams. These challenges stem from the fact that only a fraction of employees are licensed and trained to use those backend systems, and from the high cost and complexity of integrating such systems across different functions and teams. With SharePoint and SQL, once the relevant business data is surfaced in an enterprise-wide...