Assume we have a list of terms like this:
And we want to add them into here (Site settings > Term store management), below the term set Premier League
Here is the script:
#Specify tenant admin and URL
$User = "xxx@xxx.onmicrosoft.com"
$Site = "https://thered.sharepoint.com/sites/test"
$GroupName = "Site Collection - thered.sharepoint.com-sites-test"
$TermSetName = "Premier League"
$Terms = Get-Content "D:\Clubs.txt"
#Add references to SharePoint client assemblies and authenticate to Office 365 site – required for CSOM
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
$Password = Read-Host -Prompt "Please enter your password" -AsSecureString
#Bind to MMS
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($Site)
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password)
$Context.Credentials = $Creds
$MMS = [Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Context)
$Context.Load($MMS)
$Context.ExecuteQuery()
#Retrieve Term Stores
$TermStores = $MMS.TermStores
$Context.Load($TermStores)
$Context.ExecuteQuery()
#Bind to Term Store
$TermStore = $TermStores[0]
$Context.Load($TermStore)
$Context.ExecuteQuery()
#Bind to Group
$Group = $TermStore.Groups.GetByName($GroupName)
$Context.Load($Group)
$Context.ExecuteQuery()
#Bind to Term Set
$TermSet = $Group.TermSets.GetByName($TermSetName)
$Context.Load($TermSet)
$Context.ExecuteQuery()
#Create Terms
Foreach ($Term in $Terms)
{
$TermAdd = $TermSet.CreateTerm($Term,1033,[System.Guid]::NewGuid().toString())
$Context.Load($TermAdd)
$Context.ExecuteQuery()
write-host $Term added successfully -ForegroundColor yellow
}
Then the result
Comments