快速入门:在独立 Hyper-V 环境中部署单台服务器 (SharePoint Foundation 2010)

 

适用于: SharePoint Foundation 2010

上一次修改主题: 2016-11-30

可以使用独立且安全的 Hyper-V 虚拟机来测试 SharePoint Foundation 2010 的功能和行为。此方法使用的硬件资源最少并且允许您将 SharePoint Foundation 2010 测试系统与生产环境隔离开来。建议执行此种隔离,以便消除对企业网络和服务器环境造成的潜在安全威胁。

通过使用本文中提供的手动步骤或 Windows PowerShell 2.0 命令,您可以快速地在使用以下数据库之一的单台服务器上部署 SharePoint Foundation 2010:

  • 随 SharePoint Foundation 一起提供的内置 SQL Server 2008 Express 和 SQL Server 2008 R2 Express 数据库

  • 安装了 Service Pack 3 (SP3) 和累积更新 3 的 Microsoft SQL Server 2005

  • Microsoft SQL Server 2008 Service Pack 1 (SP1) 和累积更新 2

重要

本文所述的单台服务器 SharePoint Foundation 部署只用于评估和测试目的,不应在生产环境中使用。

本文内容:

  • 要求和建议

  • 必需的权限

  • 部署前任务

  • 手动部署 SharePoint Foundation 2010

  • 使用 Windows PowerShell 脚本部署 SharePoint Foundation 2010

要求和建议

以下对 Hyper-V 虚拟化服务器、虚拟机和部署环境的要求和建议仅适用于本文中所述的单台服务器部署方案。

虚拟化服务器和虚拟机配置

下表提供了虚拟化服务器和虚拟机的最低配置和建议配置。这些配置将支持用于单台服务器部署的数据库选项。

资源 最低配置 建议配置

CPU

双处理器,2 GHz

双处理器,2 GHz

内存

4 GB

8 GB

硬盘驱动器

容量为 40 GB 的固定大小的虚拟硬盘

提示

若要快速创建固定大小的虚拟硬盘,首先要将硬盘配置为可动态扩展。安装所有必需的软件(包括 SharePoint Foundation)后,请将虚拟硬盘转换为固定大小的硬盘。

容量为 80 GB 的固定大小的虚拟硬盘

网络适配器类型

综合

综合

网络类型

内部网络,从而确保虚拟机隔离并启用虚拟化服务器-虚拟机通信

提示

为便于访问和安装所需的软件和建议的软件,请使用外部网络。在准备安装 SharePoint Foundation 时,请将虚拟机配置为使用内部网络。

内部网络,从而确保虚拟机隔离并启用虚拟化服务器-虚拟机通信

以下提供了有关虚拟化服务器的配置指导:

  • 逻辑处理器与虚拟处理器(内核)的比例应尽可能的低,最佳比例为 1:1。

  • 若逻辑处理器与虚拟处理器的比例为 1:1,则应配置虚拟化服务器,以便虚拟机上的总处理器数少于物理内核的总数目。例如,如果使用四个内核的虚拟化服务器,则最佳方案是创建三个使用单个处理器的虚拟机,或创建一个具有两个处理器的虚拟机和一个使用一个处理器的虚拟机。上述的任一配置都会保留一个内核供虚拟化服务器进程使用。

除了前面的虚拟环境要求以外,在开始在虚拟机上部署 SharePoint Foundation 2010 之前,您还需查看硬件和软件要求 (SharePoint Foundation 2010) 一文。

部署环境

域是部署 SharePoint Foundation 2010 所必需的。

如果没有可用于部署 SharePoint Foundation 2010 的独立虚拟域,则必须在配置为使用以下项的 Hyper-V 上创建一个虚拟域:

  • 使用 Active Directory 域服务 (AD DS) 的域控制器

  • 使用 DNS 服务器的域控制器

您可以在域控制器上部署 SharePoint Foundation,但是需要一些配置。使用“以管理员身份运行”选项启动 Windows PowerShell 并运行以下命令,以允许在域控制器上进行部署:

$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

必需的权限

为了安装 SharePoint Foundation 2010,在虚拟机上使用的登录帐户必须属于以下项的成员:

  • 虚拟机上的本地 Administrators 组

  • SQL Server dbcreator 固定服务器角色

  • SQL Server securityadmin 服务器角色

有关详细信息,请参阅初始部署所需的管理和服务帐户 (SharePoint Foundation 2010)

部署前任务

在部署 SharePoint Foundation 2010 之前需完成下列任务:

  • 在虚拟化服务器上,创建一个包含 SharePoint Foundation 软件的安装点,或提供可从虚拟机访问的媒体(如 ISO 映像)。

  • 创建一个符合本文前面的“要求和建议”部分中描述的最低要求的虚拟机。

  • 在虚拟机上:

手动部署 SharePoint Foundation 2010

有关如何在单台服务器上手动部署 SharePoint Foundation 2010 的信息,请参阅部署包含内置数据库的单个服务器 (SharePoint Foundation 2010)部署带 SQL Server 的单台服务器 (SharePoint Foundation 2010)

使用 Windows PowerShell 脚本部署 SharePoint Foundation 2010

您可以使用 Windows PowerShell 脚本在单台服务器上部署 SharePoint Foundation 2010。

安全注释Security Note
作为一种最佳方案,不应运行未签名的脚本。
有关为 Windows PowerShell 脚本进行签名的详细信息,请参阅 TechNet Magazine 中的 Windows PowerShell:请在此处签名 (https://go.microsoft.com/fwlink/?linkid=160357&clcid=0x804)。有关一般的代码签名的详细信息,请参阅 MSDN 上的代码签名简介(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=59273&clcid=0x804)(该链接可能指向英文页面)。有关设置自己的证书颁发机构 (CA) 的详细信息,请参阅 TechNet 库中的Active Directory 证书服务(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=136444&clcid=0x804)(该链接可能指向英文页面)。

创建并使用以下 Windows PowerShell 脚本文件之一,以便在单台服务器上部署 SharePoint Foundation。

  • simplesingleserver.ps1:使用内置数据库安装 SharePoint Foundation 2010 以存储配置信息和文档。

  • simplefarm.ps1:使用 SQL Server 2005 或 SQL Server 2008 安装 SharePoint Foundation 2010 以存储配置信息和文档。

simplesingleserver.ps1

此脚本在使用内置数据库的单台服务器上部署 SharePoint Foundation 2010。

将以下代码复制到文本编辑器中,并在所选的目录中将它另存为 simplesingleserver.ps1:



$SetupPath         = Read-Host -Prompt "Please specify the path to the install media (D:)"
        
## Here is the script to install SharePoint Foundation 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" }

运行 simplesingleserver.ps1

  1. 使用“以管理员身份运行”选项启动 Windows PowerShell 2.0。

  2. 导航至保存 simplesingleserver.ps1 的目录。

  3. 从 Windows PowerShell 命令提示符处运行 .\simplesingleserver.ps1。

simplefarm.ps1

此脚本在使用 SQL Server 数据库的单台服务器上部署 SharePoint Foundation 2010。将以下代码复制到文本编辑器中,并在所选的目录中将它另存为 simplefarm.ps1:


## 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 Foundation 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..."

运行 simplefarm.ps1

  1. 使用“以管理员身份运行”选项启动 Windows PowerShell 2.0。

  2. 导航至保存 simplefarm.ps1 的目录。

  3. 从 Windows PowerShell 命令提示符处运行 .\simplefarm.ps1。