在 SharePoint Server 中还原自定义项

 

**上一次修改主题:**2018-03-09

**摘要:**了解如何还原对 SharePoint Server 2016 和 SharePoint 2013 网站进行的自定义。

可以使用 管理中心或 PowerShell 还原对 SharePoint Server 进行的任何自定义。具体使用哪种还原工具,取决于已部署的环境类型、计划要求以及与组织达成的服务级别协议。

本文内容:

  • 开始之前

  • 在 SharePoint Server 中还原解决方案包

    • 使用管理中心还原受信任解决方案

    • 使用 Windows PowerShell 还原受信任解决方案

  • 还原沙盒解决方案

  • 在 SharePoint 中还原创作的网站元素

  • 在 SharePoint 中还原工作流

  • 在 SharePoint 中还原对 Web.config 文件所做的更改

  • 在 SharePoint 中还原未打包为解决方案的已开发自定义项

开始之前

在开始此操作之前,请查看以下信息:

  • 对于受信任解决方案和沙盒解决方案,均建议您保存原始 .wsp 文件以及用于构建 .wsp 文件的源代码的备份。

在 SharePoint Server 中还原解决方案包

您用来还原解决方案包的方法取决于自定义项是部署为受信任解决方案 还是沙盒解决方案

受信任解决方案是场管理员部署的解决方案。它们部署到整个场中,可用于场内的任何网站。受信任解决方案存储在配置数据库中。使用 SharePoint Server 备份对场进行备份时,受信任解决方案也会进行备份,并包含在仅配置备份中。受信任解决方案也可以组的形式进行备份,或单独进行备份。它们在还原层次结构中是可见的。

沙盒解决方案是网站集管理员可以部署到一个网站集的解决方案。沙盒解决方案存储在与其部署到的网站集关联的内容数据库中。它们包含在 SharePoint Server 场、Web 应用程序、内容数据库和网站集备份中,但在还原层次结构中不可见,并且无法单独进行选择或还原。

使用管理中心还原受信任的解决方案

  1. 确认执行此过程的用户帐户是 SharePoint 组“服务器场管理员”的成员。

  2. 启动 管理中心。

  3. 在管理中心的主页上的“备份和还原”部分,单击“从备份还原”。

  4. 在“从备份还原 - 第 1 步(共 3 步): 选择要还原的备份”页上,从备份列表中选择包含解决方案包的备份作业,然后单击“下一步”。您可以通过单击备份旁边的加号 (+) 来查看有关各个备份的更多详细信息。

    备注

    如果未显示正确的备份作业,请在“备份目录位置”文本框中键入正确的备份文件夹的通用命名约定 (UNC) 路径,然后单击“刷新”。

  5. 在“从备份还原 - 第 2 步(共 3 步): 选择要还原的组件”页上,选中解决方案旁边的复选框,然后单击“下一步”。

  6. 在“从备份还原 - 第 3 步(共 3 步): 选择还原选项”页上的“还原组件”部分,确保“解决方案”显示在“还原以下组件”列表中。

    在“仅还原配置设置”部分,确保选中了“还原内容和配置设置”选项。

    在“还原选项”部分的“还原类型”下,选择“相同配置”选项。此时将出现一个对话框,要求您确认操作。单击“确定”。

    单击“开始还原”。

  7. 可以在“备份和还原作业状态”页顶端的“准备情况”部分查看所有恢复作业的常规状态。可以在该页下部的“还原”部分查看当前恢复作业的状态。状态页每 30 秒自动更新一次。您可以单击“刷新”手动更新状态详细信息。备份和恢复是定时服务作业。因此,可能要等待几秒才会开始恢复。

    如果您收到任何错误,则可以在“备份和还原作业状态”页的“失败消息”列中查看这些错误。还可以在步骤 3 中指定的 UNC 路径内的 Sprestore.log 文件中找到更多详细信息。

使用 PowerShell 还原受信任的解决方案

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 命令行管理程序。

  3. 在 PowerShell 命令提示符处,键入以下命令:

    Restore-SPFarm -Directory <BackupFolder> -RestoreMethod Overwrite -BackupId <GUID> -Item <SolutionPath>
    

    其中:

    • <BackupFolder> 是您希望从中还原的目录所在的 UNC 位置。

    • <GUID> 是您希望从中还原的备份 ID 的 GUID。如果不指定备份,将使用最新备份。

    • <SolutionPath> 是解决方案在备份树中的路径(通常为 farm\solutions\SolutionName)。

有关详细信息,请参阅 Get-SPContentDatabase

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

还原沙盒解决方案

不能只还原部署为沙盒解决方案的自定义项,而是必须还原与自定义项关联的服务器场、Web 应用程序、内容数据库或网站集。

在 SharePoint Server 中还原创作的网站元素

不能只还原创作的网站元素,而是必须还原与创作的网站元素关联的服务器场、Web 应用程序或内容数据库。

在 SharePoint Server 中还原工作流

工作流是一种可以还原的自定义项的特例。请确保您的备份和恢复计划可处理符合您的环境的以下任一情形:

  • 声明性工作流(例如在 SharePoint Designer 中创建的工作流)存储在它们要部署到的网站集的内容数据库中。还原内容数据库或网站集时将还原这些工作流。

  • 自定义声明性工作流操作的组件位于以下三个位置:

    • 操作的 Visual Studio 2013 程序集存储在全局程序集缓存 (GAC) 中。

    • XML 定义文件(.actions 文件)存储在 16\TEMPLATE\<LCID>\Workflow 目录中。

    • 用于将操作标记为授权类型的 XML 项存储在它用于的 Web 应用程序的 Web.config 文件中。

    如果服务器场工作流使用自定义操作,则应使用文件还原系统来还原这些文件和 XML 条目。如果需要,您可以在还原后重新应用这些文件。

  • 依赖自定义代码的工作流(如使用 Visual Studio 2013 创建的工作流)存储在两个位置。工作流的 Visual Studio 2013 程序集存储在 GAC 中,XML 定义文件存储在“功能”目录中。这与其他类型的 SharePoint Server 功能(如 Web 部件和事件接收器)一样。如果工作流是作为解决方案包的一部分进行安装,请按照还原解决方案包的说明操作。

  • 如果您所创建的自定义工作流与部署该工作流的网站集之外的其他网站集交互,则必须同时还原这两个网站集才能恢复该工作流。还原服务器场将足以恢复该服务器场中的所有网站集以及与网站集关联的所有工作流。

  • 必须使用文件系统备份应用程序单独还原未部署的工作流。

在 SharePoint Server 中还原对 Web.config 文件所做的更改

可以执行场或仅配置还原,恢复使用 管理中心或 SharePoint Server API 和对象模型对 Web.config 文件所做的更改。

如果对 Web.config 文件所做的更改不是通过使用管理中心 或 SharePoint API 及对象模型进行的,则应使用文件系统备份来保护这些更改。可以使用文件系统还原来恢复备份。

在 SharePoint Server 中还原未打包为解决方案的已开发自定义项

还原未打包为解决方案的已开发自定义项的过程可能比较复杂,因为自定义文件的位置不是标准位置。

请与开发团队或自定义项供应商联系,以确定自定义项是否涉及位于其他位置的额外加载项软件或文件。建议使用文件系统还原解决方案来还原目录。下表列出了自定义项在 Web 服务器上的通常存储位置。

Location 说明

%PROGRAMFILES%\Common files\Microsoft Shared\Web Server Extensions\16

经常更新的文件、自定义程序集、自定义模板、自定义网站定义

Inetpub

IIS 虚拟目录的位置

%WINDIR%\Assembly

全局程序集缓存 (GAC):操作系统中一个受保护的位置,将在此位置安装 Microsoft .NET Framework 代码程序集以提供完全的系统访问权限

See also

在 SharePoint Server 中备份自定义项
在 SharePoint Server 中还原服务器场
在 SharePoint Server 中还原服务器场配置
在 SharePoint Server 中还原 Web 应用程序
在 SharePoint Server 中还原内容数据库
在 SharePoint Server 中还原网站集