Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.
$session = Get-SPTaxonomySession -Site $sitename
$termStore = $session.TermStores[“Managed Metadata Application”]
$group = $termstore.CreateGroup(“My New Group”)
$group.Description = "My Term Group"
$termSet = $group.CreateTermSet(“My TermSet”,1033)
$termSet.Description = “My TermSet”
$termSet.IsAvailableForTagging = $true
$termSet.IsOpenForTermCreation = $true

Here like $termSet.IsAvailableForTagging I want to enable "Use this Term Set for Site Navigation" using powershell.

Thanks in advance

share|improve this question
add comment

3 Answers 3

up vote 2 down vote accepted

Finally I achieved it with following code.

 $navigationSet = $group.CreateTermSet($termsetName)
 $navigationSet.SetCustomProperty("_Sys_Nav_IsNavigationTermSet", "True")
 $navigationSet.SetCustomProperty("_Sys_Nav_AttachedWeb_SiteId", $site.ID.ToString())
 $navigationSet.SetCustomProperty("_Sys_Nav_AttachedWeb_WebId", $site.RootWeb.ID.ToString())    
 $navigationSet.SetCustomProperty("_Sys_Nav_AttachedWeb_OriginalUrl", $site.RootWeb.Url )
share|improve this answer
add comment

This code should help you:

     // Obtain navigation term set
     NavigationTermSet navigationTermSet = NavigationTermSet.GetAsResolvedByWeb(termSet, web, "GlobalNavigationTaxonomyProvider");
     // Specify that this term set can be used for site navigation
     navigationTermSet.IsNavigationTermSet = true;
     // specify target page for all terms in this term set 
     navigationTermSet.TargetUrlForChildTerms.Value = "~site/Pages/Topics/Topic.aspx";
share|improve this answer
How to obtain the same in powershell? –  Anuja Feb 5 '13 at 6:47
add comment

You do this in powershell by converting the TermSet to a NavigationTermSet

$site = Get-SPSite -Identity $sitename 
$navTermSet = [Microsoft.SharePoint.Publishing.Navigation.NavigationTermSet]::GetAsResolvedByWeb($termSet, $site.RootWeb, "GlobalNavigationTaxonomyProvider");

Now you have access to the navigation term set object in powershell and can use it like in oldbam's answer

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.