How to Create Terms in SharePoint 2013 using PowerShell

Sathish Nadarajan
 
Solution Architect
February 9, 2015
 
Rate this article
 
Views
15627

In this article, let us see, how to create Terms in SharePoint 2013 using PowerShell.

These scripts are very simple. But very much useful while Planning for a deployment. If we create using the User Interface, then the GUID cannot be defined by us. If we want to keep the same GUID across various environments, then we need to keep this approach.

The script is very straight forward and there is nothing much to discuss about this. We can download the executable version of this script on the bottom of this page, with the sample CSV File as well.

 $LogTime = Get-Date -Format yyyy-MM-dd_hh-mm
 $LogFile = ".CreateTerms-$LogTime.rtf"
 
 
 cls
 
 
 ##================================================================================================
 ## Description	: This script is used to Set the TermSet for the Navigation and Set the Catalog, Item Page URLs.
 ## Author		: Sathish Nadarajan
  
 ##================================================================================================
 
 
  
 $Host.UI.RawUI.WindowTitle = "-- Set Term URLs --"
 
 $StartDate = Get-Date
 Write-Host -ForegroundColor White "------------------------------------"
 Write-Host -ForegroundColor White "| Update the Navigation Tag and Catalog, Item Page URLs |"
 Write-Host -ForegroundColor White "| Started on: $StartDate |"
 Write-Host -ForegroundColor White "------------------------------------"
 
 
 
 #start-transcript $logfile
 
 $ErrorActionPreference = "Stop"
 ######################### Add SharePoint PowerShell Snapin ###############################################
 
 if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) 
 {
     Add-PSSnapin Microsoft.SharePoint.Powershell
 }
 
 ########################### End of Add SharePoint PowerShell Snapin ##################################
 
 ######################## Set Execution Path ################################################
 
 $scriptBase = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent
 Set-Location $scriptBase
 
 “TermName `t” + “TermName `t”  + “TermName `t” + “TermName `t” + “TermName `t” + “TermName `t” + “TermName `t” + “TermName `t”>> TermGUID.csv
 
 function CreateTerms([string] $caURL,[string] $groupName,[string] $termsetName,[string] $TermName, [string] $TermGuid)
 {
 
     $caSite = Get-SPSite -Identity $caURL
 
     $taxonomySession = Get-SPTaxonomySession -Site $caSite
  
     $termStore = $taxonomySession.DefaultKeywordsTermStore
  
     $termStoreGroup = $termStore.Groups[$groupName]
  
     $termset = $termStoreGroup.TermSets[$termsetName]
  
      
 
     
     $termset.CreateTerm($TermName,1033,$TermGuid)
      
     $termStore.CommitAll()
      
 }
  
 
 
 $CreateTermsCSV = $scriptBase + "" + "CreateTerms.csv"
 
 import-csv $CreateTermsCSV | where {
     #UpdateTerms $_.CentralAdminUrl $_.TermGroupName $_.TermSetName $_.TermGUID $_.ChangeCatalogTargetURL $_.ChangeCatalogTargetUrlForChildTerms $_.ChangeTargetURL $_.ChangeTargetUrlForChildTerms $_.CatalogTargetUrl $_.CatalogTargetUrlForChildTerms $_.TargetUrl $_.TargetUrlForChildTerms
 
     CreateTerms $_.CentralAdminUrl $_.TermGroupName $_.TermSetName $_.TermName $_.TermGUID
     											
 
 
     
 }
 

Download HERE

Happy Coding.

Sathish Nadarajan.

Author Info

Sathish Nadarajan
 
Solution Architect
 
Rate this article
 
Sathish is a Microsoft MVP for SharePoint (Office Servers and Services) having 15+ years of experience in Microsoft Technologies. He holds a Masters Degree in Computer Aided Design and Business ...read more
 

Leave a comment