SharePoint Online: How to Create a Subsite using PowerShell?

Requirement: Create a Subsite in SharePoint Online using PowerShell

How to Create a Subsite in SharePoint Online?

If you are a SharePoint administrator or site owner, sooner or later, you will need to create a subsite. In this blog post, I’ll walk through the process of creating a subsite in SharePoint Online using PowerShell and the steps necessary for creating your subsite from scratch using the web browser interface.

Subsites in SharePoint Online can be created within any existing root site or inside another subsite. By default, site owners (or users with full control or Manage Hierarchy) have permissions to create subsites. To add a subsite in SharePoint Online, follow these steps:

Be sure, Subsite creation is enabled in your tenant before proceeding with these steps. You may not get the option to create a subsite if its disabled! How to Enable or Disable Subsite Creation in SharePoint Online?
  • Sign in to your SharePoint Online site as Site Collection Administrator/Site Owner >> Navigate to the site under which the new subsite is to be created.
  • Click on Site Settings Gear Icon >> Choose “Site Contents” (or Click on the Site Content link from the Quick Launch)
    sharepoint online powershell create subsite
  • Scroll down to the bottom and click on “Create Subsite” link (URL shortcut: /_layouts/15/newsbweb.aspx)
    sharepoint online powershell create web
  • In modern sites, this link is moved to “New” menu at the toolbar. If you don’t find the “Subsite” link on the site contents page, that could be because Subsite creation is disabled at the tenant level. Here is how to enable or disable subsite creation: SharePoint Online: How to Enable or Disable Subsite Creation? how to create a subsite in sharepoint online using powershell
  • Provide the Name, description, URL, and template for your new subsite. Specify other optional settings such as Permissions, Navigation. Subsite can use either a different template or the same template as its parent or root site.
    how to create subsite in sharepoint online
  • Click on “Create” button at the bottom of the page to create a subsite in SharePoint Online.
It’s the best practice to exclude special characters and spaces from the URL of the site! E.g. If your site title is Human Resources, the URL name should be either HumanResources or HR.

You can create up to 2000 subsites per site collection under any subsite or root site. Once the subsite is created, you’ll be taken to the home page of the new subsite. If you are looking for a quick, easy way to create subsites in Sharepoint Online, PowerShell is the answer! Let’s see how to create a subsite in SharePoint Online using PowerShell script.

SharePoint Online: PowerShell to Create Subsite

Let’s create a subsite in SharePoint Online using PowerShell CSOM. This solution is for those who need to automate the creation of subsites from their script or other automation processes.

#Load SharePoint Online Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Variables for processing
$SiteURL = "https://crescent.sharepoint.com/Sites/Sales"
$AdminAccount = "[email protected]"
 
#User Names Password to connect 
$Password = Read-host -assecurestring "Enter Password for $AdminAccount" 
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminAccount, $Password

Try {
    #Setup the context
    $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Context.Credentials = $Credential

    #Specify Subsite details for powershell script to create subsite in sharepoint online
    $WebCI = New-Object Microsoft.SharePoint.Client.WebCreationInformation
    $WebCI.Title = "Sales - US "
    $WebCI.WebTemplate = "STS#0" #Classic Team Site
    $WebCI.Url = "us"
    #sharepoint online create subsite powershell
    $SubWeb = $Context.Web.Webs.Add($WebCI)
    $Context.ExecuteQuery()

    Write-host "Subsite Created Successfully!" -ForegroundColor Green
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

This PowerShell script creates a new web in SharePoint Online. I’ve used only mandatory parameters. You can refer to this Technet link if you want to specify other parameters such as Permission, navigation settings, etc. https://msdn.microsoft.com/EN-US/library/office/microsoft.sharepoint.client.webcreationinformation_members.aspx

Create Subsite in SharePoint Online using PnP PowerShell

Sharepoint Online PnP PowerShell module helps to simplify administration tasks, such as creating subsites. To create a new subsite in the current site collection, use the New-PnPWeb cmdlet. Here is how to create a subsite using PnP PowerShell in SharePoint Online:

#Config Variables
$SiteCollURL = "https://Crescent.sharepoint.com"
$SiteTitle = "Town Hall 2017"
$SiteURL = "townhall2017"
$Description = "Town Hall 2017 site - Find all Videos, Presentations, Demos Shared here!"
$Locale = 1033 #English
$Template = "STS#3" #Modern Subsite Template - Team site

#Get Credentials to connect
$Cred = Get-Credential

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteCollURL -Credentials $Cred

    #sharepoint online powershell create subsite
    New-PnPWeb -Title $SiteTitle -Url $SiteURL -Description $Description -Locale $Locale -Template $Template -ErrorAction Stop
    Write-host "Site '$SiteTitle' Created Successfully!" -f Green
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Additionally, The New-PnPWeb cmdlet supports -BreakInheritance, -InheritNavigation switches.

To create a subsite from a custom template, use: PowerShell to Create Subsite from Custom Template in SharePoint Online

Salaudeen Rajack

Salaudeen Rajack is a SharePoint Architect with Two decades of SharePoint Experience. He loves sharing his knowledge and experiences with the SharePoint community, through his real-world articles!

8 thoughts on “SharePoint Online: How to Create a Subsite using PowerShell?

Leave a Reply

Your email address will not be published.