Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save devendrasv/5d9dd15e3493d0582690 to your computer and use it in GitHub Desktop.
Save devendrasv/5d9dd15e3493d0582690 to your computer and use it in GitHub Desktop.
Provision taxonomy group for site collection
#Credentials to connect to office 365 site collection url
$url ="https://velegandla.sharepoint.com/sites/training"
$username="spj@Velegandla.onmicrosoft.com"
$password="yourpassword"
$Password = $password |ConvertTo-SecureString -AsPlainText -force
Write-Host "Load CSOM libraries" -foregroundcolor black -backgroundcolor yellow
Set-Location $PSScriptRoot
Add-Type -Path (Resolve-Path "Microsoft.SharePoint.Client.dll")
Add-Type -Path (Resolve-Path "Microsoft.SharePoint.Client.Runtime.dll")
Add-Type -Path (Resolve-Path "Microsoft.Online.SharePoint.Client.Tenant.dll")
Add-Type -Path (Resolve-Path "Microsoft.SharePoint.Client.Taxonomy.dll")
Write-Host "CSOM libraries loaded successfully" -foregroundcolor black -backgroundcolor Green
Write-Host "authenticate to SharePoint Online site collection $url and get ClientContext object" -foregroundcolor black -backgroundcolor yellow
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($url)
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$Context.Credentials = $credentials
$context.RequestTimeOut = 5000 * 60 * 10;
$web = $context.Web
$site = $context.Site
$context.Load($web)
$context.Load($site)
try
{
$context.ExecuteQuery()
Write-Host "authenticateed to SharePoint Online site collection $url and get ClientContext object succeefully" -foregroundcolor black -backgroundcolor Green
}
catch
{
Write-Host "Not able to authenticateed to SharePoint Online site collection $_.Exception.Message" -foregroundcolor black -backgroundcolor Red
return
}
#Getting Term store Information
function Get-TermStoreInfo
{
Write-Host "Loading taxonomy session" -foregroundcolor black -backgroundcolor yellow
$session = [Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($context)
$context.Load($session)
$context.ExecuteQuery()
Write-Host "Loading term stores" -foregroundcolor black -backgroundcolor yellow
$termStores = $session.TermStores
$context.Load($termStores)
try
{
$context.ExecuteQuery()
$termStore = $termStores[0]
Write-Host "Term store with the following id is loaded:" $termStore.Id -foregroundcolor black -backgroundcolor Green
}
catch
{
Write-Host "Error detail while getting term store id" $_.Exception.Message -foregroundcolor black -backgroundcolor Red
return
}
return $termStore
}
#Create a taxonomy group for site collection if it is not available using GetSiteCollectionGroup method
function ProvisionSiteCollectionTaxonomygroup
{
$termStore = Get-TermStoreInfo $context
Write-Host "Create Taxonomy group if it is not available" -foregroundcolor black -backgroundcolor yellow
$sitecollectiontaxonomyGroup = $termStore.GetSiteCollectionGroup($context.Site,$true)
$context.Load($sitecollectiontaxonomyGroup)
try
{
$context.ExecuteQuery()
Write-Host "Site collection $url taxonomy group "$sitecollectiontaxonomyGroup.Name" created or retrived successfully " -foregroundcolor black -backgroundcolor Green
}
catch
{
Write-Host "Error while creating or getting site collection $url taxonomy group" $_.Exception.Message -foregroundcolor black -backgroundcolor Red
return
}
}
Write-Host "Provision Site collection Taxonomy group" -foregroundcolor black -backgroundcolor yellow
ProvisionSiteCollectionTaxonomygroup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment