In place of hard-coding URLs for each environment, I decided to make a single script that is environmentally aware. Why? Cuts down on the number of scripts that have to be supported for a single development cycle. To make this more dynamic, you could move this to a function script and reference it from all your scripts.
if ((Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null) { Add-PsSnapin Microsoft.SharePoint.PowerShell } #get config database server $ConfigDB = Get-SPDatabase | where-Object{$_.Type -eq "Configuration Database"} $serverName = $ConfigDB.Server.Displayname #replace this with the web app you want to target. taco, burrito, nacho... $webApp = "taco" #set variable equal to the environment url $siteURL = switch ($serverName.ToLower()) { "dev_db" {"http://$webApp.sharepointed.com/"} "test_db" {"http://test$webApp.sharepointed.com/"} "build_db" {"http://build$webApp.sharepointed.com/"} "prod_db" {"http://$webApp.sharepointed.com/"} }
Same as above, but using a wildcard in the switch statement.
$siteURL = switch -Wildcard ($serverName.ToLower()) { "*dev*" {"http://$webApp.sharepointed.com/"} "*test*" {"http://test$webApp.sharepointed.com/"} "*build*" {"http://build$webApp.sharepointed.com/"} "*prod*" {"http://$webApp.sharepointed.com/"} }
Make sure to check $serverName = $ConfigDB.Server.Displayname
This might need to be replaced with $ConfigDB.Displayname