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()