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:
- 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)
- Scroll down to the bottom and click on “Create Subsite” link (URL shortcut: /_layouts/15/newsbweb.aspx)
- 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?
- 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.
- Click on “Create” button at the bottom of the page to create a subsite in SharePoint Online.
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
$Credential Vs $credentials (the second one has an ‘s’ on the end) – this is likely the cause of the problem here.
Hi, I need to create a multiple site collections and subsites and document library’s in a single script. Is it possible? If possible How?
Small typo in CSOM version powershell, line 11 its “$Credential” with capital C, at line 16 its “$credentials” with small c, hence code was throwing Error: Exception calling “ExecuteQuery” with “0” argument(s): “The remote server returned an error: (403) Forbidden.”
PowerShell is case-insensitive! So the case is not the problem here. Check this post to resolve 403 forbidden issue: SharePoint Online: Fix “The remote server returned an error: (403) Forbidden” Error in PowerShell
I need new site link , is it possible ?
URL shortcut: /_layouts/15/newsbweb.aspx
I need to create multiple subsites, can you help?
You can create subsites in bulk from a CSV file using PowerShell: SharePoint Online: How to Create Multiple Subsites from a CSV File using PowerShell?