Quantcast
Channel: SharePoint 2013 - Setup, Upgrade, Administration and Operations forum
Viewing all articles
Browse latest Browse all 21070

SP2013 SP1 - PowerShell Script to Create New Site Collection w/ New Content DB

$
0
0

Greetings - I'm looking for feedback/comments on a script to create a new managed path site collection with it's own content db in SharePoint 2013 SP1. The idea is to create a new site collection under our main "portal" web application. Each new site collection would have it's own content db (each client would have their own db). I am newish to PowerShell for SharePoint and am curious if the script contains any glaring flaws. I would also like comments as to the use of separate content dbs (pros / cons). Also if there are any better ways to accomplish the goal. Thanks!

$SiteName = Read-Host "Enter site collection name"
$WebsiteDesc = Read-Host "Enter site collection description"

$SiteCollectionTemplate = "STS#0"
$SiteCollectionLanguage = 1033
$WebApplicationURL = "https://portal.company.com"
$SiteRelativeURL = ("/" + $SiteName)
$SiteFullURL = ($WebApplicationURL + $SiteRelativeURL)

$SiteOwner1 = "DOMAIN\user1"
$SiteOwner1Email = "user1@company.com"
$SiteOwner1Display = "John Doe"

$SiteOwner2 = "DOMAIN\user2"
$SiteOwner2Email = "user2@company.com"
$SiteOwner2Display = "Jane Doe"

$DatabaseInstance = "SQLDatatbase"
$ContentDatabasePrefix = "WSS_Content"
$ContentDatabaseName = ($ContentDatabasePrefix + "_" + $SiteName)

$OwnersGroup = ($SiteName +" Owners")
$MembersGroup = ($SiteName +" Members")

Write-Host " "
Write-Host "Create New Manged Path" -ForegroundColor Yellow

New-SPManagedPath -RelativeURL $SiteRelativeURL -WebApplication $WebApplicationURL -Explicit

Write-Host " "
Write-Host "New Managed Path " $SiteRelativeURL " has been created" -ForegroundColor Yellow

Write-Host " "
Write-Host "Create New Content Database " -ForegroundColor Yellow

New-SPContentDatabase -Name $ContentDatabaseName -DatabaseServer $DatabaseInstance -WebApplication $WebApplicationURL

Write-Host " "
Write-Host "New Content Database created " $ContentDatabaseName -ForegroundColor Yellow

Write-Host " "
Write-Host "Create New Site Collection " -ForegroundColor Yellow

New-SPSite -Name $SiteName –Description $WebsiteDesc -ContentDatabase $ContentDatabaseName -URL $SiteFullURL -Template $SiteCollectionTemplate -OwnerAlias $SiteOwner1 –OwnerEmail $SiteOwner1Email -SecondaryOwnerAlias $SiteOwner2 -SecondaryEmail $SiteOwner2Email

Write-Host " "
Write-Host "New Site Collection created " $SiteFullURL -ForegroundColor Yellow

Write-Host " "
Write-Host "Set Database MaxSite and Warning" -ForegroundColor Yellow

Get-SPContentDatabase -Site $SiteFullURL | Set-SPContentDatabase -MaxSiteCount 1 -WarningSiteCount 0

Write-Host " "
Write-Host "Create Defualt Groups - Assign Primary and Secondary Site Owners" -ForegroundColor Yellow

$web = Get-SPWeb $SiteFullURL
$web.CreateDefaultAssociatedGroups($SiteOwner1,$SiteOwner2,"")
$PrimaryAdmin = Get-SPUser $SiteOwner1 -Web $SiteFullURL
$PrimaryAdmin.Name = $SiteOwner1Display
$PrimaryAdmin.Update()
$SecondaryAdmin = Get-SPUser $SiteOwner2 -Web $SiteFullURL
$SecondaryAdmin.Name = $SiteOwner2Display
$SecondaryAdmin.Update()

Write-Host " "
Write-Host "Add Default Users Groups" -ForegroundColor Yellow

New-SPUser -UserAlias "DOMAIN\DomainAdmins" -displayname "Domain Admins" -web $SiteFullURL -Group $OwnersGroup
New-SPUser -UserAlias "DOMAIN\powerUser1" -displayname "Power User1" -Email "puser1@company.com" -web $SiteFullURL -Group $MembersGroup
New-SPUser -UserAlias "DOMAIN\powerUser2" -displayname "Power User2" -Email "puser2@company.com" -web $SiteFullURL -Group $MembersGroup
$web.Dispose()

Write-Host " "
Write-Host "Site Collection at " $SiteFullURL " has been created in the " $ContentDatabaseName " content database" -ForegroundColor Yellow
Write-Host " "
Write-Host "Script Complete!" -ForegroundColor Yellow


Viewing all articles
Browse latest Browse all 21070

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>