Skip to main content

Create multiple SharePoint site collections from .csv file

 <#

.NOTES 

DESCRIPTION : Using the Script SharePoint admin will be able to Create Multiple Site Collections in Bulk from a CSV File using PowerShell 

#>


#Config Parameters

$TenantUrl = Read-Host  "Enter SharePoint tenant admin URL"

$CSVPath = "C:\Temp\SiteCollections.csv"

#Connect to Tenant

Connect-PnPOnline -url $TenantUrl -Credentials (Get-Credential) #or -UseWebLogin for MFA 

 Try {

    #Get Site Collections to create from a CSV file

    $SiteCollections = Import-Csv -Path $CSVPath

 

    #Loop through csv and create site collections from each row

    ForEach ($Site in $SiteCollections)

    {

        #Get Parameters from CSV

        

        $Title = $Site.Title

        $Url = $Site.Url

        $Owner =$Site.Owner

        $Template = $Site.Template

        $StorageQuota = $Site.StorageQuota          

        $TimeZone = $Site.TimeZone

 

        #Check if site exists already

        $SiteExists = Get-PnPTenantSite | Where {$_.Url -eq $URL}

        If ($SiteExists -eq $null)

        {

            #Create site collection

            Write-host "Creating Site Collection:"$Site.URL -f Yellow

            New-PnPTenantSite -Url $URL -Title $Title -Owner $Owner -Template $Template -TimeZone $TimeZone -RemoveDeletedSite -ErrorAction Stop       

            Write-host "`t Done!" -f Green

        }

        Else

        {

            write-host "Site $($URL) exists already!" -foregroundcolor Yellow

        }

    }

}

Catch {

    write-host -f Red "`tError:" $_.Exception.Message

}

Comments