In Many deployments, the first thing we need to make sure is whether the site collections were created appropriately on the Customers environment or not. Definitely every one of us would have faced this atleast once in our development phase.
So, it is always better to include the Site Collections, Subsite Creations Scripts as well along with the Deployment package. The input for this, in this article, I am reading from the XML File. Based on our convenient, we can modify the script.
The script is as follows.
$LogTime = Get-Date -Format yyyy-MM-dd_hh-mm $LogFile = ".CreateSiteCollections-$LogTime.rtf" cls ##================================================================================================ ## Description : Create Site Collections ## Author : Sathish Nadarajan ## Date : 10-Dec-2014 ##================================================================================================ $Host.UI.RawUI.WindowTitle = "-- Create Site Collectionos --" $StartDate = Get-Date Write-Host -ForegroundColor White "------------------------------------" Write-Host -ForegroundColor White "| Create Site Collections |" Write-Host -ForegroundColor White "| Started on: $StartDate |" Write-Host -ForegroundColor White "------------------------------------" #start-transcript $logfile ################################################### Add SharePoint PowerShell Snapin ###################################### if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin Microsoft.SharePoint.Powershell } ########################################################### End of PowerShell Snapin ######################################## ########################################################### Set the Exxecution Path ######################################### $scriptBase = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent Set-Location $scriptBase #Read the data from the Xml file $SiteCollectionInfo = [xml](Get-Content "01.CreateSiteCollections.xml") #Get the Web Application URL $WebApplicationURL = $SiteCollectionInfo.SitesInfo.WebApplicationURL foreach($Site in $SiteCollectionInfo.SitesInfo.Site) { Write-Host -ForegroundColor Yellow "Going to Create the Site Collection :- " $Site.Name Write-Host "The Details are as follows" -ForegroundColor Yellow Write-Host -ForegroundColor Yellow "URL :- " $Site.URL " Owner Alias :- " $Site.OwnerAlias " Name :- " $Site.Name " Template :- " $Site.Template $template = Get-SPWebTemplate -Identity $Site.Template New-SPSite $Site.URL -OwnerAlias $Site.OwnerAlias -Name $Site.Name -Template $template Write-Host -ForegroundColor Green "Site Collection Successfully Created :- " $Site.Name foreach($SubSite in $Site.SubSites.SubSite) { Write-Host -ForegroundColor Yellow "Going to Create the Sub Site :- " $SubSite.Name Write-Host "The Details are as follows" -ForegroundColor Yellow Write-Host -ForegroundColor Yellow "URL :- " $SubSite.URL " Name :- " $SubSite.Name " Template :- " $SubSite.Template $subSiteTemplate = Get-SPWebTemplate -Identity $SubSite.Template New-SPWeb $SubSite.URL -Template $subSitetemplate -Name $SubSite.Name Write-Host -ForegroundColor Green "SubSite Successfully Created :- " $SubSite.Name foreach($L2SubSite in $SubSite.L2SubSite) { Write-Host -ForegroundColor Yellow "Going to Create the Level Two Sub Site :- " $L2SubSite.Name Write-Host "The Details are as follows" -ForegroundColor Yellow Write-Host -ForegroundColor Yellow "URL :- " $L2SubSite.URL " Name :- " $L2SubSite.Name " Template :- " $L2SubSite.Template $L2subSiteTemplate = Get-SPWebTemplate -Identity $L2SubSite.Template New-SPWeb $L2SubSite.URL -Template $L2subSiteTemplate -Name $L2SubSite.Name Write-Host -ForegroundColor Green "Level 2 SubSite Successfully Created :- " $L2SubSite.Name } } } Write-Host "Script Executed Successfully....." -ForegroundColor Green #Stop-Transcript
Happy Coding.
Sathish Nadarajan.
Leave a comment