So I sat down and wrote this PowerShell script that will prompt the user for all necessary information to create a new SC with an option of creating a new Database.
To run you can copy the below script and paste it into a ps1 file.
Add-PSSnapin Microsoft.SharePoint.Powershell Write-Host "This script can be used to create Site Collections for SharePoint 2013" $webApp = Get-SPWebApplication | Where-Object {$_.DisplayName -eq "SharePoint HNSC Host - 80"} IF ($webApp){ $ans = Read-Host "I found a HNSC Host Web App, would you like me to use it?. Y or N" } ELSE { $ans = 'N' } IF ($ans -eq 'N' -or $ans -eq 'n') { $webApp = $null Write-Host "Here are the web applications I see on your farm" Get-SPWebApplication while (!$webApp) { $webAppName = Read-Host "What is the DisplayName of the Web Application you'd like to use? " $webApp = Get-SPWebApplication | Where-Object {$_.DisplayName -eq $webAppName} IF (!$webApp) {Write-Host "I didn't find a Web Application with that name. Be sure to enter the full name exactly as it's listed above."} } } $siteName = Read-Host "Site Name" $siteDescription = Read-Host "Site Description" $siteUrl = Read-Host "Site Url (ie http://site.sp2013.com)" $seeTemplates = Read-Host "Would you like to see a list of templates codes? Y or N" IF ($seeTemplates -eq 'y' -or $seeTemplates -eq 'Y') {Get-SPWebTemplate} $siteTemplate = Read-Host "Site Template (ie Blank - STS#0, Team STS#1, etc)" $siteAdmin = Read-Host "Site Admin (ie ms\devspadmin)" $createDB = Read-Host "Finally would you like to create a new Content Database for this Site Collection?" $db = $null IF($createDB -eq 'Y' -or $createDB -eq 'y') { $dbName = Read-Host "Database Name" Write-Host "Creating Database..." $db = New-SPContentDatabase -name $dbName -webApplication $webApp } ELSE { Get-SPContentDatabase -webapplication $webApp while(!$db) { $dbName = Read-Host "What Content Database would you like to use?" $db = Get-SPContentDatabase -Identity $dbName IF (!$db) {Write-Host "I didn't find a Content Database with that name. Be sure to enter the full name exactly as it's listed above." } } } Write-Host "Creating Site Collection..." New-SPSite -Name $siteName -Url $siteUrl –HostHeaderWebApplication $webApp -Template $siteTemplate -OwnerAlias $siteAdmin -ContentDatabase $db -Description $siteDescription Write-Host "Script Complete"
SharePoint Practice Manager @ General Networks Corp
Great script! Thanks. In the section where you create where you get the content database, you misspelled "Identity."
ReplyDeleteIt should read:
$db = Get-SPContentDatabase -Identity $dbName
Thanks Eric! Fixed Script above.
DeleteThanks for sharing, works great
ReplyDelete