Quick start: Deploy single server in an isolated Hyper-V environment (SharePoint Server 2010)
Applies to: SharePoint Server 2010, SharePoint Foundation 2010
You can use an isolated and secure Hyper-V virtual machine to test the features and behavior of SharePoint Server 2010. This approach uses minimal hardware resources and enables you to isolate the SharePoint Server 2010 test system from a production environment. This isolation is recommended in order to eliminate potential security threats to a corporate network and server environment.
By using the manual steps or the Windows PowerShell 2.0 commands that are provided in this article, you can quickly deploy SharePoint Server 2010 on a single server that uses one of the following databases:
The built-in SQL Server 2008 Express database that is provided with SharePoint Server
Microsoft SQL Server 2005 with Service Pack 3 (SP3) and Cumulative Update 3 installed
Microsoft SQL Server 2008 with Service Pack 1 (SP1) and Cumulative Update 2
Important
The single server SharePoint Server deployment described in this article is only intended to be used for evaluation and testing purposes, and should not be used in a production environment.
In this article:
Requirements and recommendations
Required permissions
Pre-deployment tasks
Deploy SharePoint Server 2010 manually
Deploy SharePoint Server 2010 by using Windows PowerShell scripts
Requirements and recommendations
The following requirements and recommendations for the Hyper-V virtualization server, virtual machine, and the deployment environment only apply to the single server deployment scenario described in this article.
Virtualization server and virtual machine configuration
The following table provides the minimum and recommended configurations for the virtualization server and the virtual machines. These configurations will support the database options that are available for a single server deployment.
Resource | Minimum | Recommended |
---|---|---|
CPU |
Dual processor, 2 gigahertz (GHz) |
Dual processor, 2 GHz |
Memory |
4 gigabytes (GB) |
8 GB |
Hard drive |
Fixed-size virtual hard disk that has a capacity of 40 GB Tip To speed up the creation of a fixed-size virtual hard disk, initially configure the hard disk as dynamically expanding. After you install all the required software (including SharePoint Server), convert the virtual hard disk to a fixed-size hard disk. |
Fixed-size virtual hard disk that has a capacity of 80 GB |
Network adapter type |
Synthetic |
Synthetic |
Network type |
Internal to ensure virtual machine isolation and enable virtualization server-virtual machine communications Tip For ease of access to—and installation of—required and recommended software, use an External network. When you are ready to install SharePoint Server, configure the virtual machines to use an Internal network. |
Internal to ensure virtual machine isolation and enable virtualization server-virtual machine communications |
The following configuration guidance is provided for the virtualization server:
The logical-to-virtual processor (core) ratio should be as low as possible, with 1:1 being optimal.
Using the 1:1 logical-to-virtual processor ratio, you should configure the virtualization server so the total number of processors on the virtual machines is less than the total number of physical cores. For example, if you are using a four-core virtualization server, the best practice is to create three virtual machines that use a single processor, or one virtual machine that has two processors and one virtual machine that uses one processor. Either of these configurations would leave one core free for virtualization server processes.
In addition to the preceding requirements for the virtual environment, review the Hardware and software requirements (SharePoint Server 2010) article before you start deploying SharePoint Server 2010 on the virtual machine.
Deployment environment
A domain is required to deploy SharePoint Server 2010.
If you do not have an isolated virtual domain available to deploy SharePoint Server 2010, you must create a virtual domain on a Hyper-V that is configured to use the following:
A domain controller with Active Directory Domain Services (AD DS)
A domain controller with a DNS server
You can deploy SharePoint Server on a domain controller. However, some configuration is required. Start Windows PowerShell with the Run as administrator option and run the following commands to enable deployment on a domain controller:
$acl = Get-Acl HKLM:\System\CurrentControlSet\Control\ComputerName
$person = [System.Security.Principal.NTAccount]"Users"
$access = [System.Security.AccessControl.RegistryRights]::FullControl
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]::None
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($person, $access, $inheritance, $propagation, $type)
$acl.AddAccessRule($rule)
Set-Acl HKLM:\System\CurrentControlSet\Control\ComputerName $acl
Required permissions
In order to install SharePoint Server 2010, the logon account that you are using on the virtual machine must be a member of:
The local Administrators group on the virtual machine
The SQL Server dbcreator fixed server role
The SQL Server securityadmin server role
For more information, see Initial deployment administrative and service accounts (SharePoint Server 2010).
Pre-deployment tasks
Complete the following tasks before you deploy SharePoint Server 2010:
On the virtualization server, create an installation point that contains the SharePoint Server software or provide media, such as an ISO image, that can be accessed from the virtual machine.
Create a virtual machine that meets the minimum requirements described in the “Requirements and recommendations” section earlier in this article.
On the virtual machine:
Install the operating system and the mandatory and recommended security updates.
Install the edition of SQL Server that you want to use if you are not using the built-in version that is provided with SharePoint Server.
Install the mandatory and recommended updates for the edition of SQL Server that you install.
Configure the Windows Server firewall to enable SQL Server access. For more information, see Configuring the Windows Firewall to Allow SQL Server Access (https://go.microsoft.com/fwlink/p/?LinkID=134724).
Review the Hardware and software requirements (SharePoint Server 2010) article to determine the programs and hotfixes that must be obtained and installed before you install SharePoint Server 2010.
Deploy SharePoint Server 2010 manually
For information about how to manually deploy SharePoint Server 2010 on a single server, see Deploy a single server with a built-in database (SharePoint Server 2010) or Deploy a single server with SQL Server (SharePoint Server 2010).
Deploy SharePoint Server 2010 by using Windows PowerShell scripts
You can use Windows PowerShell scripts to deploy SharePoint Server 2010 on a single server.
Security Note |
---|
As a best practice, you should not run unsigned scripts. For more information about signing Windows PowerShell scripts, see Windows PowerShell: Sign Here Please (https://go.microsoft.com/fwlink/p/?linkid=160357) in TechNet Magazine. For more information about code signing in general, see Introduction to Code Signing (https://go.microsoft.com/fwlink/p/?linkid=59273) on MSDN. For more information about setting up your own certification authority (CA), see Active Directory Certificate Services (https://go.microsoft.com/fwlink/p/?linkid=136444) in the TechNet Library. |
Create and use one of the following Windows PowerShell script files to deploy SharePoint Server on a single server.
simplesingleserver.ps1: Installs SharePoint Server 2010 using the built-in database to store configuration information and documents.
simplefarm.ps1: Installs SharePoint Server 2010 using either SQL Server 2005 or SQL Server 2008 to store configuration information and documents.
simplesingleserver.ps1
This script deploys SharePoint Server 2010 on a single server that uses the built-in database.
Copy the following code to a text editor and save it as simplesingleserver.ps1 in the directory of your choice:
$SetupPath = Read-Host -Prompt "Please specify the path to the install media (D:)"
## Here is the script to install SharePoint Server 2010 with SQL Express and create Central Admin ##
& $SetupPath\PrerequisiteInstaller.exe /unattended | Write-Host
if( $lastexitcode -eq 0 ) {
& $SetupPath\setup.exe /config $SetupPath\Files\SetupSilent\config.xml | Write-Host
if( $lastexitcode -eq 0 ) {
Write-Host "Install successful..."
} else { Write-Error "ERROR: $lastexitcode" }
} else { Write-Error "ERROR: $lastexitcode" }
To run simplesingleserver.ps1
Navigate to the Files\SetupSilent directory on the installation source and open config.xml in a text editor.
Locate the
<!--<PIDKEY Value="Enter Product Key Here" />-->
line.Replace "Enter Product Key Here" with one of the following PIDKEYs: PKXTJ-DCM9D-6MM3V-G86P8-MJ8CY or BV7VC-RMR6B-26P6Y-BTQDG-DX2KQ
Remove the comment markers for the line of code you edited and then save the config.xml file.
Start Windows PowerShell 2.0 using the Run as administrator option.
Navigate to the directory where you saved simplesingleserver.ps1.
Run .\simplesingleserver.ps1 from the Windows PowerShell command prompt.
simplefarm.ps1
This script deploys SharePoint Server 2010 on a single server that uses a SQL Server database. Copy the following code to a text editor and save it as simplefarm.ps1 in the directory of your choice:
## Settings you may want to change ##
$err = $null
$SetupPath = Read-Host -Prompt "Please specify the path to the install media (D:)"
Write-Host "Please specify the Farm Administrator credentials"
$FarmCredential = Get-Credential "DOMAIN\<Farm Admin>"
$DBServer = Read-Host -Prompt "Please enter the name of your database server"
$Passphrase = Read-Host -Prompt "Please enter the farm passphrase (optional)" -AsSecureString
$FarmName = Read-Host -Prompt "Please enter a farm name (optional)"
$CAPort = Read-Host -Prompt "Please enter the Central Administration port number (optional)"
if ([String]::IsNullOrEmpty($SetupPath))
{
Write-Error "You must enter the install media path"
return
}
if ([String]::IsNullOrEmpty($FarmCredential))
{
Write-Error "You must enter a Farm Administrator's user name and password"
return
}
if ([String]::IsNullOrEmpty($DBServer))
{
Write-Error "You must enter a database server"
return
}
if ($Passphrase.Length -eq 0)
{
Write-Warning "You didn't enter a farm passphrase, using the Farm Administrator's password instead"
$Passphrase = $FarmCredential.Password
}
if ([String]::IsNullOrEmpty($FarmName))
{
Write-Warning "You didn't enter a farm name, using the machine name instead"
$FarmName = $env:COMPUTERNAME
}
if ([String]::IsNullOrEmpty($CAPort))
{
Write-Warning "You didn't enter a Central Administration port number, using 5000 instead"
$CAPort = 5000
}
## Here is the script to install SharePoint Server 2010 and create Central Admin ##
Write-Host "[1/15] Running prerequisite installer..."
& $SetupPath\PrerequisiteInstaller.exe /unattended | Write-Host
if( $lastexitcode -eq 0 ) {
Write-Host "[2/15] Running silent farm binary installation... (this will take some time)"
& $SetupPath\setup.exe /config $SetupPath\Files\SetupFarmSilent\config.xml | Write-Host
Write-Host "[3/15] Completed silent farm binary installation."
if( $lastexitcode -eq 0 ) {
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
Write-Host "[4/15] Creating new configuration database..."
New-SPConfigurationDatabase -DatabaseName ("{0}_SharePoint_Configuration_DB" -f $FarmName) -DatabaseServer $DBServer -AdministrationContentDatabaseName ("{0}_AdminContent_DB" -f $FarmName) -FarmCredentials $FarmCredential -Passphrase $Passphrase -ErrorVariable err
Write-Host "[5/15] Verifying farm creation..."
$spfarm = get-spfarm
if ($spfarm -ne $null) {
Write-Host "[6/15] ACLing SharePoint Resources..."
Initialize-SPResourceSecurity -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[7/15] Installing Services..."
Install-SPService -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[8/15] Installing Features..."
Install-SPFeature -AllExistingFeatures -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[9/15] Provisioning Central Administration..."
New-SPCentralAdministration -Port $CAPort -WindowsAuthProvider "NTLM" -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[10/15] Installing Help..."
Install-SPHelpCollection -All -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[11/15] Installing Application Content..."
Install-SPApplicationContent -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[12/15] Basic configuration completed."
$SPManagedAccount = Get-SPManagedAccount $FarmCredential.UserName
Write-Host "[13/15] Creating Web Application and Application Pool..."
$webApp = New-SPWebApplication -Name "SharePoint - 80" -ApplicationPool "SharePoint - 80" -ApplicationPoolAccount $SPManagedAccount -DatabaseServer $DBServer -DatabaseName ("{0}_Content_DB" -f $FarmName) -Url "https://localhost" -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[14/15] Creating site collection..."
$SPSite = New-SPSite -url "https://localhost" -OwnerAlias $FarmCredential.UserName -ErrorVariable err
if ([String]::IsNullOrEmpty($err) -eq $true) {
Write-Host "[15/15] Port 80 Web application and site collect created. Browse to https://localhost to pick a template for the Web..."
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $err" }
} else { Write-Error "ERROR: $lastexitcode" }
} else { Write-Error "ERROR: $lastexitcode" }
$exitprompt = Read-Host -Prompt "Press Enter to exit..."
To run simplefarm.ps1
Navigate to the Files\SetupFarmSilent directory on the installation source and open config.xml in a text editor.
Locate the
<!--<PIDKEY Value="Enter Product Key Here" />-->
line.Replace "Enter Product Key Here" with one of the following PIDKEYs: PKXTJ-DCM9D-6MM3V-G86P8-MJ8CY or BV7VC-RMR6B-26P6Y-BTQDG-DX2KQ
Remove the comment markers for the line of code you edited and then save the config.xml file.
Start Windows PowerShell 2.0 using the Run as administrator option.
Navigate to the directory where you saved simplefarm.ps1.
Run .\simplefarm.ps1 from the Windows PowerShell command prompt.
See Also
Other Resources
Resource Center: Installation and Deployment for SharePoint Server 2010
Resource Center: Virtualization for SharePoint Server 2010