Created
October 5, 2014 00:50
-
-
Save devendrasv/5d9dd15e3493d0582690 to your computer and use it in GitHub Desktop.
Provision taxonomy group for site collection
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Credentials to connect to office 365 site collection url | |
$url ="https://velegandla.sharepoint.com/sites/training" | |
$username="[email protected]" | |
$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