1 min to read
Copy Top Navigation between Hub Sites in SharePoint Online through PowerShell
In this blog, we shall check how to copy Top Navigation between Hub sites in SharePoint Online. Install SharePoint PnP Online PowerShell before running this script.
This PowerShell script uses SharePoint Online PnP cmdlet Get-PnPNavigationNode to get the top navigations and Add-PnPNavigationNode to add the top navigation to the given hub site.
Param(
[Parameter(ParameterSetName = "Inputparameter",Position=1,Mandatory=$True)]
[String]$SourceHubsiteUrl,
[Parameter(ParameterSetName = "Inputparameter",Position=2,Mandatory=$True)]
[String]$DestinationHubsiteUrl
)
Add-Type -AssemblyName PresentationFramework
Function Copy-NavigationToplink ($SourceHubsiteUrl,$DestinationHubsiteUrl)
{
$GetTopNavs= Get-NavigationToplink -Hubsite $SourceHubsiteUrl
Add-NavigationToplink -Topnavs $GetTopNavs -Hubsite $DestinationHubsiteUrl
}
#Get Top Navigation from the given Hub Site
Function Get-NavigationToplink($Hubsite,$Credentials)
{
[System.Windows.MessageBox]::Show("Provide the login credentials for ($Hubsite) Site")
Connect-PnPOnline -Url $Hubsite -UseWebLogin
$TopNavs=Get-PnPNavigationNode -Location TopNavigationBar |Select Title,Url
Disconnect-PnPOnline
return $TopNavs
}
#Add the Top Navigation to the given Hub Site
Function Add-NavigationToplink($TopNavs,$Hubsite)
{
[System.Windows.MessageBox]::Show("Provide the login credentials for ($Hubsite) Site")
Connect-PnPOnline -Url $Hubsite -UseWebLogin
foreach($TopNav in $TopNavs)
{
if($TopNav.Url)
{
Add-PnPNavigationNode -Location TopNavigationBar -Title $TopNav.Title -Url $TopNav.Url
}
}
}
Copy-NavigationToplink -SourceHubsiteUrl $SourceHubsiteUrl -DestinationHubsiteUrl $DestinationHubsiteUrl
You can download the script directly from the PowerShell Gallery too. https://www.powershellgallery.com/packages/Copy-SPOHubSiteNavigation