为部署任务和管理任务编写脚本

更新日期: 2006 年 12 月 12 日

Reporting Services 支持使用脚本以自动执行常规安装、部署任务和管理任务。部署报表服务器的过程包括多个步骤。必须使用多个工具和过程来配置部署;没有可用于自动执行所有任务的单个程序或方法。

并非每个步骤都应自动执行。在某些情况下,手动或通过图形工具执行步骤是最简单且最有效的方法。例如,如果要部署大量报表和模型,则复制报表服务器数据库比编写用于重新创建报表服务器内容的代码更好。

某些步骤需要自定义代码。例如,可以自动配置虚拟目录和 Web 服务,但是只有在编写用于对报表服务器 Windows Management Instrumentation (WMI) 提供程序进行调用的自定义代码时才能实现。如果不想编写代码,则必须使用 Reporting Services 配置工具执行该步骤。

若要运行配置报表服务器的脚本,您必须是要配置的计算机上的本地管理员。有关详细信息,请参阅配置用于远程管理的报表服务器

本主题说明自动执行特定步骤的推荐方法。介绍了几个程序和编程界面,本主题中还提供了针对每一种方法的说明。

部署任务及自动执行这些任务的方式

下表总结了部署报表服务器所需执行的所有安装和配置任务。您可以使用该表将特定任务与用于自动执行任务或在无人参与的情况下执行任务的方法相匹配。

任务 方法

安装 Reporting Services。

可以从命令行运行安装程序以执行无人参与的安装。

可以使用安装程序安装和配置报表服务器,但是只有在选择默认配置选项且系统满足此安装类型的所有要求时才能这样做。如果不能安装默认配置,则必须执行“仅文件”安装。有关安装选项的详细信息,请参阅使用安装程序安装 Reporting Services

在 Internet 信息服务 (IIS) 中配置网站。

Reporting Services 没有提供用于创建或配置网站的工具。有关自动执行此任务的详细信息,请查阅 IIS 产品文档。

配置报表服务器 Web 服务和虚拟目录。

必须编写用于对报表服务器 WMI 提供程序进行调用的自定义代码。没有用于配置 Web 服务和指定虚拟目录的命令行实用工具或脚本模板。

如果编码要求阻止您自动执行此步骤,则可通过运行 Reporting Services 配置工具轻松地手动配置 Web 服务和虚拟目录。有关详细信息,请参阅配置报表服务器虚拟目录

创建、升级或配置报表服务器数据库。

从以下用于自动执行数据库配置的方法中进行选择:

  • 使用预定义的脚本模板创建脚本 GenerateNewDatabaseScript.sql、UpgradeDatabaseScript.sql 或 GrantRightsScript.sql。可以从 Reporting Services 配置工具或通过调用 Windows Management Instrumentation (WMI) 提供程序生成这些脚本。可以使用 osql 实用工具或从 Management Studio 中的查询窗口以编程方式从命令行运行该脚本。
  • 运行 rsconfig 配置工具以配置连接。不能使用 rsconfig.exe 来创建或升级数据库。如果使用 rsconfig,请确保运行 GrantRightsScript,以便授予对报表服务器数据库的权限。对于每个服务帐户,必须重新生成和运行该脚本。重新生成和运行脚本的次数取决于报表服务器数据库连接是如何配置的。因为有两个服务帐户,所以必须重新生成和运行脚本两次。

配置扩展部署。

从以下用于自动执行扩展部署的方法中进行选择:

  • 运行 rskeymgmt.exe 实用工具以将报表服务器实例联接到现有安装。有关详细信息,请参阅添加和删除扩展部署的加密密钥
  • 编写针对报表服务器 WMI 提供程序运行的自定义代码。

备份加密密钥。

从以下用于自动备份加密密钥的方法中进行选择:

  • 运行 rskeymgmt.exe 实用工具以备份密钥。有关详细信息,请参阅备份和还原加密密钥
  • 编写针对报表服务器 WMI 提供程序运行的自定义代码。

配置报表服务器电子邮件。

编写针对 Reporting Services WMI 提供程序运行的自定义代码。该提供程序支持部分电子邮件配置设置。

虽然 RSReportServer.config 文件包含所有设置,但是不要以自动执行的方式使用该文件。具体来说,不要使用批处理文件将该文件复制到另一个报表服务器。每个配置文件都包含特定于当前实例的值。这些值对于其他报表服务器实例将是无效的。

有关设置的详细信息,请参阅配置报表服务器以进行电子邮件传递

配置无人参与的执行帐户。

从以下用于自动配置无人参与处理帐户的方法中进行选择:

部署现有的报表服务器环境,包括文件夹层次结构、角色分配、报表、订阅、计划、数据源和资源。

重新创建现有报表服务器环境的最佳方式是将报表服务器数据库复制到新的报表服务器实例中。

备用方法是编写自定义代码,从而以编程方式重新创建现有的报表服务器内容。但应注意,订阅、报表快照和报表历史记录无法以编程方式重新创建。

某些部署受益于以上两项技术的结合使用(也就是说,还原报表服务器数据库,然后运行自定义代码以便为特定安装修改报表服务器数据库)。

有关重新定位报表服务器数据库的详细信息,请参阅将报表服务器数据库移至另一台计算机。有关通过编程方式创建报表服务器环境的详细信息,请参阅本主题中的“复制报表服务器环境”部分。

用于自动执行服务器部署的工具和技术

以下列表总结了可用于自动执行部署和维护任务的程序和接口:

  • 可以在无人参与模式下运行安装程序,以安装和配置(有时)报表服务器组件。必须选择“仅文件”安装选项,才能让安装程序配置报表服务器实例。
  • 报表服务器 WMI 提供程序和 Reporting Services 命令行实用工具可用于本地和远程服务器配置。
    报表服务器 WMI 提供程序公开了用于对 Reporting Services 安装的各个方面(包括指定服务帐户、配置虚拟目录、创建和配置报表服务器数据库,或配置电子邮件传递的报表服务器)进行配置的类、属性和方法。必须编写自定义代码或脚本,才能使用 WMI 提供程序。有关详细信息,请参阅 Reporting Services WMI Provider
    除了编写代码以外,还可以使用命令行实用工具(rsconfig.exe 和 rskeymgmt.exe)。可以编写运行实用工具的批处理文件。可以使用实用工具来自动执行某些但不是所有配置任务。
  • 通过脚本模板,可以生成用于创建、升级和配置报表服务器数据库的现成脚本。可以使用 Reporting Services 配置工具来生成这些脚本。
  • 报表服务器脚本主机工具 (rs.exe) 可以运行自定义 Visual Basic 代码,通过写入该代码可以重新创建现有内容或将现有内容从一个报表服务器移至另一个报表服务器。使用此方法,可以在 Visual Basic 中编写脚本,将其另存为 .rss 文件,并使用 rs.exe 在目标报表服务器上运行该脚本。所编写的脚本可以调用 SOAP 接口,以访问报表服务器 Web 服务。应使用此方法编写部署脚本,因为通过此方法可以重新创建报表服务器文件夹命名空间和内容,以及重新创建基于角色的安全性。
    还可以使用 rs.exe 来运行在 SQL Server Management Studio 中创建的自定义脚本或生成的脚本。对于 Reporting Services,Management Studio 中的脚本生成功能将为特定任务(例如,创建角色、设置报表属性、定义计划等)创建 Visual Basic 代码。生成的代码是不完整的;它将捕获键盘击键和鼠标事件。若要使用此代码,必须将其复制到您所创建的大型程序中。
ms159720.note(zh-cn,SQL.90).gif注意:
与早期版本的 Reporting Services 不同,您不能再使用安装程序来部署所有可能的报表服务器配置。如果要配置扩展部署或使用远程 SQL Server 实例来承载报表服务器数据库,则必须编写脚本或运行命令行实用工具。此外,SQL Server 2005 中的报表服务器 WMI 提供程序已进行更新。如果要重复使用针对早期版本的 WMI 提供程序编写的脚本,则必须修改这些脚本才能使用新端点。

复制报表服务器环境

可以编写用于在其他报表服务器实例中复制报表服务器环境的脚本。通常会使用 Visual Basic 编写部署脚本,然后使用报表服务器脚本主机实用工具处理这些脚本。

使用脚本可以在服务器之间复制文件夹、共享数据源、资源、报表、角色分配和设置。为报表服务器实例编写脚本,然后在其他服务器上运行该脚本以重新创建报表服务器命名空间。如果在 Reporting Services 部署中有多个报表服务器,则可以在每台服务器上分别运行该脚本以便以同一种方式配置所有的服务器。

下面是在服务器之间迁移报表的步骤:

  1. 将脚本变量设置为源报表服务器的 URL。
  2. 使用 GetReportDefinition 方法和 GetProperties 方法,可以检索报表定义和该报表的属性。
  3. 将 URL 设置为指向目标服务器。
  4. 使用 CreateReport 方法,可以传递由 GetProperties 返回的属性和由 GetReportDefinition 返回的报表定义。

通过结合使用 get 方法和 create 方法,您可以执行类似的步骤以迁移设置、文件夹、共享数据源和资源。有关可用方法的详细信息,请参阅 Reporting Services Managed Programming Reference

ms159720.note(zh-cn,SQL.90).gif注意:
除非显式设置了凭据,否则脚本将按照运行脚本的用户的 Microsoft Windows 凭据运行。

有关脚本示例的详细信息,请参阅脚本示例 (Reporting Services)。有关如何设置脚本文件格式和运行脚本文件的详细信息,请参阅 Scripting with the rs Utility and the Web Service

设置服务器属性的脚本示例

可以编写脚本或代码来设置报表服务器上的系统属性。以下 Microsoft Visual Basic .NET 脚本显示了一种设置属性的方法。该示例禁用了 RSClientPrint ActiveX 控件,但可以用任意有效的属性名称和值来替换 EnableClientPrintingFalse。若要查看服务器属性的完整列表,请参阅Report Server System Properties

若要使用该脚本,则将其保存至扩展名为 .rss 的文件,然后使用 rs.exe 命令提示实用工具在报表服务器上运行该文件。由于没有编译该脚本,因此不需要安装 Visual Basic。该示例假定您对报表服务器所在的本地计算机拥有权限。如果未使用拥有权限的帐户进行登录,则必须通过其他命令行参数来指定帐户信息。有关详细信息,请参阅 rs 实用工具

Public Sub Main()
        Dim props(0) As [Property]
        Dim setProp As New [Property]
        setProp.Name = "EnableClientPrinting"
        setProp.Value = “False” 
        props(0) = setProp
        Try
            rs.SetSystemProperties(props)
        Catch ex As System.Web.Services.Protocols.SoapException
            Console.Write(ex.Detail.InnerXml)
        Catch e as Exception
            Console.Write(e.Message)
        End Try
End Sub

请参阅

概念

管理 Reporting Services
报表服务器命令提示实用工具
Reporting Services 中的浏览器支持
Reporting Services 组件概述

其他资源

GenerateDatabaseCreationScript Method (WMI MSReportServer_ConfigurationSetting Class)
GenerateDatabaseRightsScript Method (WMI MSReportServer_ConfigurationSetting Class)
GenerateDatabaseUpgradeScript Method (WMI MSReportServer_ConfigurationSetting Class)
如何从命令提示符安装 SQL Server 2005
报表服务器安装的默认配置
部署 Reporting Services

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

更改的内容:
  • 创建、升级或配置报表服务器数据库。
  • 配置报表服务器电子邮件。

2006 年 7 月 17 日

新增内容:
  • 添加了如何通过脚本设置服务器属性的示例。

2006 年 4 月 14 日

更改的内容:
  • 重要修订。