kwizcom banner advertisement

SharePoint Online: Export Term Store Data to CSV using PowerShell

Requirement: Export Term store data from SharePoint Online site to a CSV file

Solution: There is no out of box way to export complete term store data in SharePoint online. However, we can utilize PowerShell to export term store data including all term groups, term sets and terms to a CSV file. Here is the script.
sharepoint online export term set

PowerShell to Export Term Store data to CSV:
#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 = ""

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

     #Array to Hold Result - PSObjects
    $ResultCollection = @()

    #Get the term store
    $TermStore =$TaxonomySession.GetDefaultSiteCollectionTermStore()

    #Get all term groups   
    $TermGroups = $TermStore.Groups

    #Iterate through each term group
    Foreach($Group in $TermGroups)
        #Get all Term sets in the Term group
        $TermSets = $Group.TermSets

        #Iterate through each termset
        Foreach($TermSet in $TermSets)
            #Get all Terms from the term set
            $Terms = $TermSet.Terms

            #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 Results to a CSV File
    $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
This produces a CSV file as in this image:
sharepoint online powershell export term set

To import this CSV data to any other term store, use my another article: PowerShell to Import Term Store Data from CSV in SharePoint Online
SharePoint Online: Export Term Store Data to CSV using PowerShell SharePoint Online: Export Term Store Data to CSV using PowerShell Reviewed by Salaudeen Rajack on December 15, 2016 Rating: 5


  1. Thank you very much for your script! Unfortunately it runs into a timeout error: "Error Exporting Termstore Data! Ausnahme beim Aufrufen von "ExecuteQuery" mit 0 Argument(en): "The request channel timed out while waiting for a reply after 00:00:3
    0. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a por
    tion of a longer timeout."

    Can you help?

    1. This occurs usually on long running operations on slow connections. Try setting: $Ctx.RequestTimeOut = 5000*10000


Please Login and comment to get your questions answered!

Powered by Blogger.