配置タスクおよび管理タスクのためのスクリプト作成

更新 : 2006 年 12 月 12 日

Reporting Services は、スクリプトを使用した日常的なインストール、配置、および管理タスクの自動化をサポートします。レポート サーバーの配置は複数の段階を伴うプロセスです。配置を構成するためには複数のツールとプロセスを使用する必要があります。すべての作業を自動化する単一のプログラムやアプローチは存在しません。

すべての手順を自動化することが必ずしも有効な手段ではありません。場合によっては、手作業またはグラフィカルなツールで作業することが、最も効率的かつシンプルな手段になる場合もあります。たとえば、大量のレポートやモデルを配置する必要がある場合、レポート サーバーのコンテンツを再構築するようなコードを作成するよりも、レポート サーバー データベースをコピーした方が効率的です。

中には、カスタム コードを必要とする手順もあります。たとえば、仮想ディレクトリや Web サービスの構成は自動化できますが、そのためには、レポート サーバーの Windows Management Instrumentation (WMI) プロバイダを呼び出すカスタム コードを作成しなければなりません。なんらかの理由でコードを作成したくない場合は、Reporting Services 構成ツールを使用して、この手順を実行する必要があります。

レポート サーバーを構成するスクリプトを実行するには、構成するコンピュータのローカル管理者である必要があります。詳細については、「レポート サーバーのリモート管理の構成」を参照してください。

このトピックでは、特定の手順を自動化する際に推奨されるアプローチについて説明します。いくつかのプログラムやプログラム インターフェイスに触れ、このトピックでそれぞれについてさらに詳しく説明します。

配置タスクと自動化の方法

次の表は、レポート サーバーを配置するために必要なインストール タスクおよび構成タスクをまとめたものです。特定のタスクと、それを自動化するためのアプローチがひとめでわかるように記載されています。

タスク アプローチ

Reporting Services をインストールする。

コマンド ラインからセットアップを実行することによって自動インストールが可能です。

セットアップ プログラムを使用すると、レポート サーバーのインストールと構成の両方を行うことができます。ただし、この場合は、既定の構成オプションを選択すること、システムが自動インストール要件をすべて満たしていることが条件となります。既定の構成でインストールすることができない場合は、ファイルのみのインストールを実行する必要があります。インストール オプションの詳細については、「セットアップを使用した Reporting Services のインストール」を参照してください。

インターネット インフォメーション サービス (IIS) で Web サイトを構成する。

Reporting Services には、Web サイトを作成したり構成したりするための機能はありません。このタスクを自動化する方法の詳細については、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 を実行して、レポート サーバー データベースに権限を付与する必要があります。サーバー アカウントごとにスクリプトを再生成して実行する必要があります。スクリプトを再生成して実行する回数は、レポート サーバーのデータベース接続を構成した方法によって異なります。サービス アカウントが 2 つあるため、スクリプトは 2 回再生成して実行する必要があります。

スケールアウト配置を構成する。

スケールアウト配置を自動化するには、次のいずれかのアプローチを使用します。

  • rskeymgmt.exe ユーティリティを実行して、レポート サーバー インスタンスを既存の環境に追加する。詳細については、「スケールアウト配置に関する暗号化キーの追加と削除」を参照してください。
  • レポート サーバー WMI プロバイダに対して実行するカスタム コードを作成する。

暗号化キーをバックアップする。

暗号化キーのバックアップを自動化するには、次のいずれかのアプローチを使用します。

  • rskeymgmt.exe ユーティリティを実行してキーをバックアップする。詳細については、「暗号化キーのバックアップおよび復元」を参照してください。
  • レポート サーバー WMI プロバイダに対して実行するカスタム コードを作成する。

レポート サーバーの電子メールを構成する。

Reporting Services WMI プロバイダに対して実行するカスタム コードを作成する。プロバイダでは、電子メールの構成設定のサブセットがサポートされています。

RSReportServer.config ファイルにはすべての設定が含まれていますが、このファイルの使用を自動化しないようにしてください。特に、ファイルを別のレポート サーバーにコピーする場合は、バッチ ファイルを使用しないでください。各構成ファイルには、現在のインスタンスに固有の値が含まれています。これらの値は、別のレポート サーバー インスタンスでは無効になります。

この設定の詳細については、「電子メール配信用のレポート サーバーの構成」を参照してください。

自動実行アカウントを構成する。

自動実行アカウントの構成を自動化するには、次のいずれかのアプローチを使用します。

既存のレポート サーバー環境を配置する (フォルダ階層、ロールの割り当て、レポート、サブスクリプション、スケジュール、データ ソース、リソースなど)。

既存のレポート サーバー環境を再構築する最善の方法は、レポート サーバー データベースを新しいレポート サーバー インスタンスにコピーすることです。

カスタム コードを作成して、既存のレポート サーバーのコンテンツをプログラムによって再構築する方法もあります。ただし、サブスクリプション、レポート スナップショット、レポート履歴は、プログラムによって再作成できないことに注意してください。

場合によっては両者を組み合わせた方法も効果的です (つまり、レポート サーバー データベースを復元してから、カスタム コードによって、特定の環境に合わせてレポート サーバー データベースを更新します)。

レポート サーバー データベースの再配置の詳細については、「別のコンピュータへのレポート サーバー データベースの移動」を参照してください。レポート サーバー環境をプログラムによって構築する方法については、このトピックの「レポート サーバー環境の複製」を参照してください。

サーバー配置を自動化するためのツールと技法

配置タスクとメンテナンス タスクを自動化するためのプログラムおよびインターフェイスを次に示します。

  • セットアップ プログラムを自動モードで実行して、レポート サーバー コンポーネントのインストールから、場合によっては構成までを行うことができます。ファイルのみのインストール オプションを選択して、セットアップ時にレポート サーバー インスタンスが構成されるようにする必要があります。
  • ローカル サーバーとリモート サーバーの構成には、レポート サーバー WMI プロバイダおよび Reporting Services のコマンド ライン ユーティリティを使用できます。
    レポート サーバー WMI プロバイダは、サービス アカウントの指定、仮想ディレクトリの構成、レポート サーバー データベースの作成と構成、電子メール配信用のレポート サーバーの構成など、Reporting Services のインストールのあらゆる機能を構成するための、クラス、プロパティ、およびメソッドを公開します。WMI プロバイダを使用するには、カスタム コードまたはスクリプトを作成する必要があります。詳細については、「Reporting Services WMI プロバイダ」を参照してください。
    コードを作成する代わりに、コマンド ライン ユーティリティ (rsconfig.exe および rskeymgmt.exe) を使用することもできます。これらのユーティリティを実行するバッチ ファイルを作成できます。構成タスクの一部は、これらのユーティリティを使って自動化できます。
  • スクリプト テンプレートを使用すると、レポート サーバー データベースを作成、アップグレード、および構成するためのスクリプトを簡単に作成できます。スクリプトは、Reporting Services 構成ツールから生成できます。
  • 既存のコンテンツを再構築したり、レポート サーバーからレポート サーバーに移動したりするためのカスタム コードを Visual Basic で作成し、レポート サーバーのスクリプト ホスト ツール (rs.exe) で実行できます。このアプローチでは、Visual Basic でスクリプトを作成して .rss ファイルとして保存し、そのスクリプトを rs.exe を使用して、対象レポート サーバー上で実行します。作成するスクリプトでは、レポート サーバー Web サービスに対する SOAP インターフェイスを呼び出すことができます。配置スクリプトは、レポート サーバー フォルダの名前空間および内容の再作成や、ロールベースのセキュリティの再作成を可能にするため、このアプローチで作成します。
    rs.exe では、カスタム スクリプトのほか、SQL Server Management Studio で生成されたスクリプトを実行することもできます。Reporting Services では、Management Studio のスクリプト生成機能によって、特定のタスク (ロールの作成、レポート プロパティの設定、スケジュールの定義など) に特化した Visual Basic コードを作成できます。生成されるコードは、キー ストロークやマウス イベントをキャプチャしたものであり、それだけでは不完全なものです。このコードは、独自に作成したプログラム内にコピーして使用します。
ms159720.note(ja-jp,SQL.90).gifメモ :
以前のバージョンの Reporting Services とは異なり、レポート サーバーのあらゆる構成をセットアップ プログラムを使って配置することはできません。スケールアウト配置を構成したり、リモート SQL Server インスタンスを使用してレポート サーバー データベースをホストしたりするためには、そのためのスクリプトを作成するか、コマンド ライン ユーティリティを実行する必要があります。また、レポート サーバー WMI プロバイダは、SQL Server 2005 でアップデートされています。以前のバージョンの WMI プロバイダ用に作成したスクリプトを再利用したい場合は、新しいエンドポイントを使用するようにスクリプトを修正する必要があります。

レポート サーバー環境の複製

レポート サーバー環境を別のレポート サーバー インスタンスに複製するためのスクリプトを作成できます。配置スクリプトは、一般的には Visual Basic で作成し、レポート サーバーのスクリプト ホスト ユーティリティで処理します。

スクリプトを使用して、フォルダ、共有データ ソース、リソース、レポート、ロールの割り当て、および設定を、あるサーバーから別のサーバーにコピーします。1 つのレポート サーバー インスタンス用のスクリプトを作成してから、そのスクリプトを別のサーバーで実行して、レポート サーバー名前空間を再作成します。レポート サービスで、複数のレポート サーバーを配置している場合は、各サーバーで個別にスクリプトを実行して、すべてのサーバーを同様に構成できます。

次の一覧で、あるサーバーから別のサーバーにレポートを移行する手順を示します。

  1. スクリプト変数を移行元レポート サーバーの URL に設定します。
  2. GetReportDefinition メソッドおよび GetProperties メソッドを使用して、レポートのレポート定義およびプロパティを取得します。
  3. 移行先サーバーを指すように URL を設定します。
  4. CreateReport メソッドを使用し、GetProperties から返されたプロパティと GetReportDefinition から返されたレポート定義を渡します。

get メソッドと create メソッドを組み合わせて使用することで、設定、フォルダ、共有データ ソース、およびリソースの移行と同様の手順を実行できます。使用できるメソッドの詳細については、「Reporting Services マネージ プログラミング リファレンス」を参照してください。

ms159720.note(ja-jp,SQL.90).gifメモ :
スクリプトは、資格情報を明示的に設定しない限り、スクリプトを実行しているユーザーの Microsoft Windows 資格情報を使用して実行されます。

スクリプトのサンプルの詳細については、「スクリプト サンプル (Reporting Services)」を参照してください。スクリプト ファイルのフォーマットおよび実行方法の詳細については、「rs ユーティリティと Web サービスを使用したスクリプト」を参照してください。

サーバーのプロパティを設定するスクリプトの例

レポート サーバーのシステム プロパティを設定するスクリプトまたはコードを作成できます。次の Microsoft Visual Basic .NET スクリプトは、プロパティを設定する 1 つの方法を示しています。この例では RSClientPrint ActiveX コントロールを無効にしていますが、EnableClientPrinting および False を有効なプロパティ名と値に置き換えることができます。サーバーのプロパティの完全な一覧については、「レポート サーバーのシステム プロパティ」を参照してください。

スクリプトを使用するには、.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 メソッド (WMI MSReportServer_ConfigurationSetting クラス)
GenerateDatabaseRightsScript メソッド (WMI MSReportServer_ConfigurationSetting クラス)
GenerateDatabaseUpgradeScript メソッド (WMI MSReportServer_ConfigurationSetting クラス)
コマンド プロンプトから SQL Server 2005 をインストールする方法
レポート サーバー インストールの既定の構成
Reporting Services の配置

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

変更内容 :
  • レポート サーバー データベースを作成、アップグレード、構成する。
  • レポート サーバーの電子メールを構成する。

2006 年 7 月 17 日

新しい内容 :
  • スクリプトを使用してサーバーのプロパティを設定する例を追加しました。

2006 年 4 月 14 日

変更内容 :
  • 内容を大幅に改訂しました。