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

 

适用于: SharePoint Foundation 2010, SharePoint Server 2010

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

您可以使用隔离的安全 Hyper-V 虚拟机来测试 SharePoint Server 2010 的功能和行为。此方法使用的硬件资源最少,同时允许您将 SharePoint Server 2010 测试系统从生产环境中隔离出来。建议您使用此隔离,以避免对企业网络和服务器环境造成潜在安全威胁。

通过使用本文提供的手动步骤或 Windows PowerShell 2.0 命令,可以在使用下列数据库之一的单个服务器上快捷地部署 SharePoint Server 2010。

  • 随 SharePoint Server 提供的内置 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 Server 部署仅供评估和测试使用,不应用在生产环境中。

本文内容:

  • 要求和建议

  • 必需的权限

  • 部署前任务

  • 手动部署 SharePoint Server 2010

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

要求和建议

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

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

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

资源 最低配置 建议的配置

CPU

双处理器,2 GHz

双处理器,2 GHz

内存

4 GB

8 GB

硬盘驱动器

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

提示

若要提高创建固定大小虚拟硬盘的速度,请首先将该硬盘配置为动态扩充硬盘。安装完所有所需的软件(包括 SharePoint Server)后,将虚拟硬盘转换为固定大小硬盘。

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

网络适配器类型

综合

综合

网络类型

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

提示

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

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

针对虚拟化服务器提供以下配置指导:

  • 应使逻辑处理器与虚拟处理器的比率尽可能小,最佳比率为 1:1。

  • 使用 1:1 作为逻辑处理器与虚拟处理器的比率来配置虚拟化服务器,应使虚拟机中的处理器总数小于物理内核总数。例如,如果您使用的是四核虚拟化服务器,则最好创建三个使用单处理器的虚拟机,或创建一个使用双处理器的虚拟机和一个使用单处理器的虚拟机。这两种配置都为虚拟化服务器进程留出一个空闲内核。

除了了解用于虚拟环境的上述要求外,还应查看硬件和软件要求 (SharePoint Server 2010) 一文,然后再开始在虚拟机上部署 SharePoint Server 2010。

部署环境

部署 SharePoint Server 2010 需要具有一个域。

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

  • 具有 Active Directory 域服务 (AD DS) 的域控制器

  • 具有 DNS 服务器的域控制器

您可以在域控制器中部署 SharePoint Server,但必须进行一些配置。使用“以管理员身份运行”选项启动 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 Server 2010,在虚拟机中使用的登录帐户必须为下列各项的成员:

  • 虚拟机上的本地 Administrators 组

  • SQL Server dbcreator 固定服务器角色

  • SQL Server securityadmin 服务器角色

有关详细信息,请参阅管理和服务帐户 (SharePoint Server 2010)

部署前任务

在部署 SharePoint Server 2010 之前,您需要完成下列任务:

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

  • 创建一个满足本文前面的“要求和建议”一节中所述的最低要求的虚拟机。

  • 在虚拟机上:

手动部署 SharePoint Server 2010

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

使用 Windows PowerShell 脚本部署 SharePoint Server 2010

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

安全注释Security Note
作为最佳实践,不应运行未签署的脚本。
有关签署 Windows PowerShell 脚本的详细信息,请参阅 TechNet 杂志中的 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 Server。

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

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

simplesingleserver.ps1

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

将以下代码复制到一个文本编辑器中,并在您选择的目录中将该文件另存为 simplesingleserver.ps1:



$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" }

运行 simplesingleserver.ps1

  1. 导航到安装源的 Files\SetupSilent 目录,并在文本编辑器中打开 config.xml。

  2. 找到 <!--<PIDKEY Value="Enter Product Key Here" />--> 行。

  3. 将“Enter Product Key Here”替换为下列 PIDKEY 之一:PKXTJ-DCM9D-6MM3V-G86P8-MJ8CY 或 BV7VC-RMR6B-26P6Y-BTQDG-DX2KQ

  4. 删除您所编辑的这行代码的批注标记,然后保存 config.xml 文件。

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

  6. 导航到保存 simplesingleserver.ps1 的目录。

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

simplefarm.ps1

此脚本将在使用 SQL Server 数据库的单个服务器上部署 SharePoint Server 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 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..."

运行 simplefarm.ps1

  1. 导航到安装源的 Files\SetupFarmSilent 目录,并在文本编辑器中打开 config.xml。

  2. 找到 <!--<PIDKEY Value="Enter Product Key Here" />--> 行。

  3. 将“Enter Product Key Here”替换为下列 PIDKEY 之一:PKXTJ-DCM9D-6MM3V-G86P8-MJ8CY 或 BV7VC-RMR6B-26P6Y-BTQDG-DX2KQ

  4. 删除您所编辑的这行代码的批注标记,然后保存 config.xml 文件。

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

  6. 导航到保存 simplefarm.ps1 的目录。

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