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?
Subsites in SharePoint Online can be created within any existing root site or subsite. By default, site owners (or users with Full control or Manage Hierarchy) have the 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)
    sharepoint online powershell create subsite
  • Scroll down to the bottom and click on "Create Subsite" link
    sharepoint online powershell create web
  • In modern sites, this link is moved to "New" menu at the toolbar. If you don't find "Subsite" link in 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 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 upto 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. 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.
#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 = $credentials

    #Specify Subsite details
    $WebCI = New-Object Microsoft.SharePoint.Client.WebCreationInformation
    $WebCI.Title = "Sales - US "
    $WebCI.WebTemplate = "STS#0" #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 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
To create a new subsite in the current site collection, use: New-PnPWeb cmdlet. Specify the parameters as below:
#Config Variables
$SiteCollURL = "https://crescenttech.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#0" #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.

No comments:

Please Login and comment to get your questions answered!

Powered by Blogger.