This post tries to cover topics thats relevant for building a Proof of Cocept (POC) or Test Environment SharePoint 2010 servers. The first part covers the basic installation of an Application Server for SharePoint within a 2-Tier server Model.

For smaller SharePoint 2010 installation such as foundation server,please refer to the Foundation Server post found here .


The post tries to cover some of the basic requirements to be covered off before starting the installation and the gets into the installation process itself. The steps should be followed to be build a Proof of concept server (POC) or a development environment (DEV) before going production. Wherever possible, both GUI and Scripted options will be shown. To get a much deeper understanding, TECHNET should be used as your bible J.

Some of the basic components for a SharePoint 2010 that would be looked into via the post are :-

  1. SharePoint Server
  2. SQL Database Server
  3. Service Accounts (For running SharePoint)
  4. Virtualization or Physical Servers

Capacity planning, architecture of a SharePoint Farm is a completely different ball game and would be covered in another post.

Playground for this post involves the usual suspects:-

  1. Windows 2008 R2 Servers and Domain
  2. SQL 2008 R2
  3. SharePoint 2010
  4. Esxi Server host.

Active Directory

Creating service accounts helps avoid a lot of pitfalls during and after the installation of SharePoint. First and foremost , different service accounts for different parts of SharePoint ensures that troubleshooting would be much simpler , minimize the impact of an outage of a service account or part of SharePoint from the rest of the built and so forth.

I am currently rebuilding the network at home and thought it would be a good chance to completely rebuild the whole domain and start everything from scratch. So I have a brand new Windows 2008 R2 Domain Controller and have only started to populate the AD. For SQL server, a service account was created for use within the SQL server installation for all the services that run within it.

For SharePoint, I have initially created a SharePoint Setup Account and a SharePoint Farm Account. There will be requirement to create more service accounts but the post will cover them as it goes through the installation process. So in order to kick start the installation, the requirement is for these 2 accounts to be created within the AD. Depending on the different environments that would be built within your organization ( DEV,TEST, PPTE/ Pre Prod , PRD,DR) create different service accounts to reflect the different environments.

Note: The service accounts will need to have the following settings

To start the installation process, the above mentioned steps would currently suffice.

SQL Server

There are a few steps to be completed on the SQL Server side of things, so as to prep the server for your SharePoint Installation. They are:

  1. Security Role permissions within SQL for the SharePoint service accounts
  2. Database settings

Security roles for SharePoint Setup and Farm Account will need to be completed before starting with the installation process. The Farm account doesn’t necessarily have to be manually provided any permission as the SharePoint installation process should complete the same.

Create a new login for SharePoint Setup account as shown below

And now provide the login with server roles as shown below

SharePoint Databases can be created in two ways. The installer can create the databases as the installation process goes through or you can also pre create your databases. The advantageous of pre creating databases is that the databases can be customized for their sizing, log file size and growth aspect and so forth. This helps a lot with the capacity planning that goes with SharePoint. Both methods are equally supported for the installation of SharePoint. Most scenarios where a pre created Database comes into effect are in situations when your database servers are looked after by a different team or organization for that matter. A list of databases can be provided with their sizing , naming conventions and other settings.

SharePoint Installation

Preparing the SharePoint Server with the pre requisite software is the first and foremost step that needs to be completed before starting the SharePoint Setup. If your SharePoint server has Internet connectivity, then the easiest way to install the pre requisite software would be to get to the Splash page of the SharePoint installer and choose the option to install the software. This will initiate the download of the hotfixes and setting up of the Application and Web Server roles on the SharePoint server.

Recommendation: Download all the individual Pre requisite software onto a common folder before and complete the installations and then run the pre requisites installer to setup the Application and Web Server roles on the server.

Once this has completed, the SharePoint 2010 binaries can be installed as followed

Choose “Server Farm” as the installation model for the installation.

On the file Location Tab on the next window choose to change the location of the Index Files to a different partition as this will grow tremendously. Default location is the System Drive and this should be changed strongly espacially for a production environment.

The Binaries can also be installed using PowerShell but the option to choose the location of the Index file cannot be placed at the same time the installation, but can be later changed. This is the only difference between doing a GUI installation of SharePoint 2010 Binaries compared to PowerShell installation.

Choose “Complete” as the server type to install all components.

This pretty much starts the installation process.

Untick the option to Run the config wizard now and instead “RESTART the Server at this stage”

Scripted Install of SharePoint 2010 Binaries

  1. Set PowerShell to enable the remote execution of scripts. Open PowerShell and paste the command displayed below and click “Y” to enable the execution of scripts.

Set-ExecutionPolicy Remotesigned

  1. For the Script, I have created a folder within the System Drive as shown and will place all my scripts within this folder to be called by PowerShell or later by the SharePoint Management Shell. I have also downloaded and saved SPmodule (Download Link) onto the same folder. Set all the values within the script accordingly.
    #SharePoint Binaries Installation
    #Importing PowerShell Module for SharePoint 2010
    Write-Host -ForegroundColor Blue "Importing SharePoint PowerShell Binaries"
    $env:PSModulePath = $env:PSModulePath + ";C:\SP\Scripts\SPModule"
    Import-Module SPModule.misc
    Import-Module SPModule.setup
    Write-Host -ForegroundColor Blue "Modules have been imported"
    Write-Host -ForegroundColor Blue "**************************"
    Write-Host -ForegroundColor Blue "Installing SharePoint Binaries"
    Install-SharePoint -SetupExePath "D:\setup.exe" -PIDKey "XXXX-XXXX-XXXX-XXXX"
    Write-Host -ForegroundColor Blue "Finished Installing SharePoint Binaries"
    Write-Host -ForegroundColor Blue "**************************"

SharePoint Config Wizard and Central Admin Website Setup

Once the server has rebooted from the last process, start the SharePoint Config Wizard from under the SharePoint folder on “All Programs”.

Choose the option to crate a new server farm.

Enter the details of the SQL server, the name for the Configuration Database for SharePoint along with the SharePoint Farm Account username and password. Use the Domain\username format.

The SharePoint farm account will be enabled the required Server Roles on the SQL server . This account is also known as the Database access account for SharePoint. At this point there is no option to use a proper naming convention for the Central Admin Website Content Database and will be pre created by the installer using a random name. Using scripted installation this can be avoided.

This will kick start the installation progress once the port for Central Admin and the type of Authentication (Choose NTML) has been completed and a summary page will be displayed.

Scipted Method of Install

From here on, the scripts will initially call a config file that contains all the variables that need to be passed within the scripts.

#SharePoint Configuration Wizard
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
. .\config.ps1
Write-Host -ForegroundColor White "*************************************************************"
Write-Host -ForegroundColor Blue " - Preparing the Configuration Wizard for SharePoint Install"
New-SPConfigurationDatabase -DatabaseName $farmConfigDBName -DatabaseServer $databaseServerName -AdministrationContentDatabaseName $farmAdminContentDBName -Passphrase (ConvertTo-SecureString "pass@word1" -AsPlaintext -Force) -FarmCredentials (Get-Credential)
Write-Host -ForegroundColor Blue " - Finished Configuration Setup of SharePoint"
Write-Host -ForegroundColor White "*************************************************************"
Sleep 10
Write-Host -ForegroundColor Green "*************************************************************"
Write-Host -ForegroundColor Blue "Initializing SharePoint Central Administration Setup"
Install-SPHelpCollection -All
Install-SPFeature –AllExistingFeatures
New-SPCentralAdministration -Port $SSLPORT  -WindowsAuthProvider "NTLM"
New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck"  -value "1" -PropertyType dword
Write-Host -ForegroundColor Blue "Finished Setting Up Central Administration Website"
Write-Host -ForegroundColor Green "*************************************************************"

The first script will be used to run the configuration Wizard to setup the Config Database and Admin Database

I will be using the script to create two databases called “SP_CONFIG_DB” and “SP_CONTENT_CA_DB” . The scripts can also connect to these databases if they are precreated within the SQL server. For the sake of the post, I will be precreating the databases and the using then same script to connect to them.

The databases have to be created using the Collation “Latin1_General_CI_AS_KS_WS”

The two precreated databases can be seen here

Note: If these databases have been created by another user account other than SharePoint Setup Account (Which would be the situation most of the time, since your DBA administrator would be making these databases for you) ensure that both the Setup and Farm accounts for SharePoint are added as new users for these two databases with DB_owner permissions associated.

As mentioned before the config file contains the variables for the scripts to execute

Run the script from the PowerShell Window and it will ask you to enter the Farm account credentials

At this point the Central Admin Website can be opened using http://Server_Name:Port_Number

This completes the basic Installation of SharePoint Application Server.