############################################################ # Configures a SharePoint farm with: # Configuration Database # Central Administation web application and site # # Based on a script by: # Jason Warren, Habanero Consulting Group # jwarren@habaneroconsulting.com ############################################################ # # Configuration # $cred = New-Object System.Management.Automation.PSCredential 'domain\svc_mimsp', (ConvertTo-SecureString -String 'password' -AsPlainText -Force) $sqlserver = 'server' $farm_alias = 'MIM' $farm_passphrase = ConvertTo-SecureString -String 'password' -AsPlainText -force $db_config = 'SharePoint_Config' $db_central_admin = 'SharePoint_Content_CentralAdministration' $ca_port = '22122' $ca_auth_provider = 'NTLM' # # Set up SQL Alias locations # # Create the registry keys if they're missing $x86 = "HKLM:\Software\Microsoft\MSSQLServer\Client\ConnectTo" if ((test-path -path $x86) -ne $True) { write-output "Missing ConnectTo key created: $x86" New-Item $x86 } $x64 = "HKLM:\Software\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo" if ((test-path -path $x64) -ne $True) { write-output "Missing ConnectTo key created: $x64" New-Item $x64 } # Create the TCP/IP Aliases $alias_value = "DBMSSOCN," + $sqlserver New-ItemProperty -Path $x86 -Name $farm_alias -PropertyType String -Value $alias_value -ea silentlycontinue New-ItemProperty -Path $x64 -Name $farm_alias -PropertyType String -Value $alias_value -ea silentlycontinue # Run cliconfig to verify the aliases # Start-Process C:\Windows\System32\cliconfg.exe # Start-Process C:\Windows\SysWOW64\cliconfg.exe # # Create the configuration database # Write-Output "Creating the configuration database $db_config" Add-PSSnapin Microsoft.SharePoint.PowerShell New-SPConfigurationDatabase -DatabaseName $db_config -DatabaseServer $sqlserver -AdministrationContentDatabaseName $db_central_admin ` -Passphrase $farm_passphrase -FarmCredentials $cred -LocalServerRole Application # Check to make sure the farm exists and is running. if not, end the script $farm = Get-SPFarm if (! $farm -or $farm.Status -ne "Online") { Write-Output "Farm was not created successfully, or has not come online as expected" exit } # # Create the Central administration site # Write-Output "Create the Central Administration site on port $ca_port" New-SPCentralAdministration -Port $ca_port -WindowsAuthProvider $ca_auth_provider # # Misc. Administrivia # Write-Output "Initialize SharePoint2016 security" Initialize-SPResourceSecurity Write-Output "Install SharePoint2016 services" Install-SPService Write-Output "Register SharePoint2016 features" Install-SPFeature -AllExistingFeatures Write-Output "Install SharePoint2016 application content" Install-SPApplicationContent Write-Output "Install Distributed Cache Service" Add-SPDistributedCacheServiceInstance # # Add managed accounts # Write-Output "Adding managed accounts" New-SPManagedAccount -credential $cred -ea silentlycontinue # This is another option, a one-liner that does the lot! # psconfig.exe -cmd configdb -create -server SERVERNAME\INSTANCE_NAME -database CONFIG_DB_NAME -passphrase “YOUR PASSPHRASE” -user DOMAIN\FARM_ACCOUNT -password FARM_ADMIN_PASSWORD -admincontentdatabase CENTRAL_ADMIN_DB_NAME -cmd helpcollections -installall -cmd secureresources -cmd services -install -cmd installfeatures -cmd adminvs -provision -port YOUR_PORT -windowsauthprovider onlyusentlm -cmd applicationcontent -install