I am stuck on a PowerShell V3.0 problem for programmatically adding Child Links to the Global Navigation bar in our Online SharePoint 2013 (Office 365-Azure) site.
I have found code that works for me to add Headers, to my top link global navigation bar, but I cannot find anywhere, how to add children links (such as Child1 in my attached photo) under a given header (such as Hello1 in image) on the global navigation bar. I am using CSOM libraries to do this.
I have been Googling for days on this, and cannot find anything that shows me what to do with the code to make the child links. Everything I have found either uses PS snapins from Sharepoint 2010 (which I cannot download and use in Sharepoint 2013 Online – unless someone knows of a way to do that), or is written in C# or VB and I am unable translate the code into PowerShell.
Is there any chance that someone would know how or be able to point me to a resource that would help me solve this issue? The following code snippets work well to add the top level links/headers to the global navigation bar for me but how to add sub links under these headers, programmatically using PowerShell v3.0?
I put the following in a foreach-object loop reading the information from an XML file…this all works well, for adding top level headers/links. I believe I just need to make slight alterations to this code to add sub-links under my global nav headings, but cannot figure out how:
$siteUrl = $_.Url $siteTitle = $_.Title $context = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl) $context.Credentials = $credentials $context.RequestTimeOut = 5000 * 60 * 10; $web = $context.Web $site = $context.Site $context.Load($web) $context.Load($site) $context.ExecuteQuery() $NavBar = $context.Web.Navigation.TopNavigationBar $NavigationNode = New-Object Microsoft.SharePoint.Client.NavigationNodeCreationInformation $NavigationNode.Title = $ItemName $NavigationNode.Url = $ItemUrlPath $NavigationNode.AsLastNode = $true $context.Load($NavBar.Add($NavigationNode)) $context.ExecuteQuery()