Create SharePoint hub sites by using PowerShell
If you're a global or SharePoint admin in Office 365, you can convert any existing site to a hub site by using Microsoft PowerShell. In this example, you'll learn how to create a SharePoint hub site and to associate another site with it. In this scenario, you are setting up sites for the Contoso marketing department:
- You will create a hub site that all other marketing sites will be associated with.
- You will then specify settings and permissions for the hub site.
- Finally, you will create a second site and associate it with the hub site.
Note
To work with this example in SharePoint Online, we recommend that you use a developer tenant and not your production tenant. All of the following steps use a fictional tenant named "Contoso" that you can replace with your tenant name.
Using PnP PowerShell
The samples below can be performed using PnP PowerShell.
Note
In the remainder of this exercise, contoso will be used as the tenant name. Continue to use your own tenant name in place of contoso.
Note
PnP PowerShell is an open-source solution with active community providing support for it. There is no SLA for the open-source tool support from Microsoft.
Create a new hub site
First, we will create the marketing site that will serve as a hub site that other sites can associate with. The intent is that any sites that are marketing-oriented will be part of the hub site. This applies common navigation and branding across the associated sites, enables team members to search across all the sites associated with the single hub site, and takes advantage of other hub site features.
Connect to the SharePoint Online Admin center using:
Connect-PnPOnline -Url https://contoso-admin.sharepoint.com -UseWebLogin
Create the site to be used as a hub site using the New-PnPSite cmdlet:
New-PnPSite -Type TeamSite -Title "Contoso marketing division" -Alias "marketing" -Description "Main site for collaboration for marketing teams at Contoso"
The cmdlet returns the URL of the new site similar to the following:
https://contoso.sharepoint.com/sites/marketing
Register the new marketing site as a hub site by using the Register-PnPHubSite cmdlet:
Register-PnPHubSite -Site https://contoso.sharepoint.com/sites/marketing
Set properties and permissions on the hub site
The hub site doesn't have a logo or description yet. We also want to constrain it so that only one person can make changes to the hub site.
Set properties
Upload a logo image for the site by going to
https://contoso.sharepoint.com/sites/marketing/SiteAssets
and uploading any image you like. Make a note of the image file name.Use the Set-PnPHubSite cmdlet to set the logo and description. In place of
mylogo.jpg
, specify the name of the image that you uploaded:Set-PnPHubSite -Identity https://contoso.sharepoint.com/sites/marketing -LogoUrl https://contoso.sharepoint.com/sites/marketing/SiteAssets/mylogo.jpg -Description "Main hub site for collaboration on marketing activities across Contoso"
Set permissions
Now we will restrict access so that only the user nestorw@contoso.com
can make changes to the hub site associations.
Run the Grant-PnPHubSiteRights cmdlet to grant a user rights to the marketing hub site. We'll use
nestorw@contoso
in this example, but you can use any valid user on your tenant (you can specify multiple users by separating them with a comma):Grant-PnPHubSiteRights -Identity https://contoso.sharepoint.com/sites/marketing -Principals "nestorw@contoso"
Create and associate a new site
The final step is to create the site we want to associate with the hub. You can repeat these steps for as many sites as you want to join to the hub.
Provision the site by using the New-PnPSite cmdlet:
New-PnPSite -Type TeamSite -Title "Online advertising team" -Alias "online-advertising" -Description "For collaboration on online advertising resources"
The cmdlet returns the URL of the new site similar to the following:
https://contoso.sharepoint.com/sites/online-advertising
Associate this site with the hub site by using the Add-PnPHubSiteAssociation cmdlet:
Add-PnPHubSiteAssociation -Site https://contoso.sharepoint.com/sites/online-advertising -HubSite https://contoso.sharepoint.com/sites/marketing
Confirm the hub site is working
To confirm, you can either:
- Run the Get-PnPHubSite cmdlet.
- Sign in to SharePoint Online and view the hub site directly at
https://contoso.sharepoint.com/sites/marketing
.
The hub site navigation appears at the top of the site. If you go to the https://contoso.sharepoint.com/sites/online-advertising
site, it shows the same hub site navigation at the top.