次の方法で共有


レポート サーバー間でコンテンツを移行するためのサンプル Reporting Services rs.exe スクリプト

このトピックでは、 RS.exe ユーティリティを使用して、1 つの SQL Server Reporting Services レポート サーバーから別のレポート サーバーにコンテンツ アイテムと設定をコピーするサンプル Reporting Services RSS スクリプトについて説明します。 RS.exe は、ネイティブと SharePoint モードの両方で、Reporting Services と共にインストールされます。 このスクリプトは、Reporting Services アイテム (レポートやサブスクリプションなど) をサーバー間でコピーします。 スクリプトは SharePoint モードとネイティブ モードの両方のレポート サーバーをサポートしています。

適用対象: Reporting Services SharePoint モード | Reporting Services ネイティブ モード

このトピックで:

ssrs_migration.rss スクリプトをダウンロードするには

CodePlex サイト Reporting Services からスクリプトをダウンロード RS.exe スクリプトは、コンテンツを ローカル フォルダーに移行します。 詳細については、このトピック のスクリプトの使用方法 に関するセクションを参照してください。

サポートされているシナリオ

スクリプトは SharePoint モードとネイティブ モードの両方のレポート サーバーをサポートしています。 このスクリプトでは、次のレポート サーバー バージョンがサポートされています。

  • SQL Server 2014

  • SQL Server 2012

  • SQL Server 2008 R2

スクリプトは同じモードまたは異なるモードのレポート サーバー間でコンテンツをコピーするために使用できます。 たとえば、SQL Server 2008 R2 ネイティブ モードのレポート サーバーから SQL Server 2012 SP1 SharePoint モードのレポート サーバーにコンテンツをコピーするスクリプトを実行できます。 スクリプトは RS.exe がインストールされているいずれのサーバーからも実行できます。 たとえば、以下の配置では次のことが可能です。

  • サーバー A 上で RS.exe とスクリプトを実行する

  • サーバー B から コンテンツを

  • サーバー C コピーする

サーバー名 [レポート サーバー モード]
サーバー A ネイティブ
サーバーB SharePoint
サーバーC SharePoint

RS.exe ユーティリティの詳細については、「RS.exe ユーティリティ (SSRS)」をご覧ください。

スクリプトが移行するアイテムとリソース

スクリプトは既存の同名コンテンツに上書きしません。 移行元サーバー上にある同じ名前の項目がスクリプトによって検出された場合、個々の項目は "失敗" メッセージになり、スクリプトは続行されます。 次の表は、スクリプトを使用して移行先のモードのレポート サーバーに移行できるコンテンツとリソースの種類を示したものです。

アイテム 移行されるもの SharePoint 説明
パスワード いいえ いいえ パスワードは移行 されません 。 コンテンツ アイテムの移行後、移行先サーバーで資格情報を更新します。 たとえば、保存された資格情報を使用するデータ ソースなどです。
個人用レポート いいえ いいえ ネイティブ モードの "個人用レポート" 機能は、個々のユーザー ログインに基づいているため、スクリプト サービスは、rss スクリプトの実行に使用される -u パラメーター以外のユーザーの "個人用レポート" フォルダー内のコンテンツにアクセスできません。 また、"個人用レポート" は Reporting Services SharePoint モードの機能ではなく、フォルダー内のアイテムを SharePoint 環境にコピーすることはできません。 そのため、スクリプトは、ソース ネイティブ モードのレポート サーバーの [個人用レポート] フォルダーにあるレポート アイテムをコピーしません。 このスクリプトを使用して "個人用レポート" フォルダーのコンテンツを移行するには、次の手順を実行します。

1) レポート マネージャーで新しいフォルダーを作成します。 必要に応じて、各ユーザーのフォルダーまたはサブフォルダーを作成できます。

2) "個人用レポート" コンテンツを持つユーザーの 1 人としてログインします。

3) レポート マネージャーで、[ 個人用レポート ] フォルダーをクリックします。

4) フォルダーの 詳細 ビューをクリックします。

5) コピーする各レポートを選択します。

6) [レポート マネージャー] ツール バーの [ 移動 ] をクリックします。

7) 目的の保存先フォルダーを選択します。

8) 各ユーザーに対して手順 2 から 7 を繰り返します。

9) スクリプトを実行します。
歴史 いいえ いいえ
履歴の設定 イエス イエス 履歴の設定は移行されますが、履歴の詳細は移行されません。
スケジュール はい はい スケジュールを移行するには、SQL Server エージェントがターゲット サーバーで実行されている必要があります。 SQL Server エージェントがターゲットで実行されていない場合は、次のようなエラー メッセージが表示されます。

Migrating schedules: 1 items found. Migrating schedule: theMondaySchedule ... FAILURE: The SQL Agent service is not running. This operation requires the SQL Agent service. ---> Microsoft.ReportingServices.Diagnostics.Utilities.SchedulerNotResponding Exception: The SQL Agent service is not running. This operation requires the SQL Agent service.
ロールとシステム ポリシー イエス イエス 既定では、スクリプトはサーバー間でカスタムアクセス許可スキーマをコピーしません。 既定の動作では、"親の権限の継承" フラグが TRUE に設定された対象サーバーにアイテムが関連付けられます。 スクリプトで個々のアイテムの権限をコピーする場合は、SECURITY スイッチを使用します。

ソース サーバーとターゲット サーバーが 同じレポート サーバー モードではない場合 (ネイティブ モードから SharePoint モードに移行する場合など)、SECURITY スイッチを使用すると、次のトピック「Reporting Services のロールとタスクを比較する」の比較に基づいて、既定の ロールとグループを SharePoint グループとアクセス許可にマップしようとします。 カスタム ロールとグループは、移行先サーバーにコピーされません。

同じモードのサーバー間でスクリプトがコピーされ、SECURITY スイッチを使用すると、スクリプトによって移行先サーバーに新しいロール (ネイティブ モード) またはグループ (SharePoint モード) が作成されます。

移行先サーバーにロールが既に存在する場合、スクリプトは次のような "失敗" メッセージを作成し、他の項目の移行を続行します。 スクリプトが完了したら、移行先サーバーのロールがニーズを満たすように構成されていることを確認します。 移行役割: 8 項目が見つかりました。

Migrating role: Browser ... FAILURE: The role 'Browser' already exists and cannot be created. ---> Microsoft.ReportingServices.Diagnostics.Utilities.RoleAlreadyExistsException: The role 'Browser' already exists and cannot be created.

詳細については、「レポート サーバーへのユーザー アクセス権の付与 (レポート マネージャー)」を参照してください。

注: 移行元サーバーに存在するユーザーが移行先サーバーに存在しない場合、スクリプトは移行先サーバーにロールの割り当てを適用できません。SECURITY スイッチが使用されている場合でも、スクリプトはロールの割り当てを適用できません。
[共有データ ソース] イエス イエス スクリプトは、ターゲット サーバー上の既存の項目を上書きしません。 ターゲット サーバー上の項目が既に同じ名前で存在する場合は、次のようなエラー メッセージが表示されます。

Migrating DataSource: /Data Sources/Aworks2012_oltp ... FAILURE:The item '/Data Sources/Aworks2012_oltp' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Data Source s/Aworks2012_oltp' already exists.

資格情報は、データ ソースの一部としてコピー されません 。 コンテンツ アイテムの移行後、移行先サーバーで資格情報を更新します。
共有データセット イエス イエス
フォルダー イエス イエス スクリプトは、ターゲット サーバー上の既存の項目を上書きしません。 ターゲット サーバー上の項目が既に同じ名前で存在する場合は、次のようなエラー メッセージが表示されます。

Migrating Folder: /Reports ... FAILURE: The item '/Reports' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports' already exists.
報告書 イエス イエス スクリプトは、ターゲット サーバー上の既存の項目を上書きしません。 ターゲット サーバー上の項目が既に同じ名前で存在する場合は、次のようなエラー メッセージが表示されます。

Migrating Report: /Reports/testThe item '/Reports/test' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports/test' already exists.
パラメーター イエス イエス
サブスクリプション イエス イエス
履歴の設定 イエス イエス 履歴の設定は移行されますが、履歴の詳細は移行されません。
処理オプション イエス イエス
キャッシュ更新オプション イエス イエス 依存設定はカタログ アイテムの一部として移行されます。 レポート (.rdl) と関連する設定 (キャッシュ更新オプションなど) を移行するスクリプトのサンプルを次に示します。

レポート TitleOnly.rdl 0 項目のパラメーターの移行が見つかりました。

レポート TitleOnly.rdl のサブスクリプションの移行: 1 つの項目が見つかりました。

サブスクリプションの移行 \\server\public\savedreports に TitleOnly として保存...成功

レポート TitleOnly.rdl ..の履歴設定の移行成功

レポート TitleOnly.rdl ..の処理オプションの移行0 個の項目が見つかりました。

レポート TitleOnly.rdl ..のキャッシュ更新オプションの移行成功

レポート TitleOnly.rdl のキャッシュ更新計画の移行: 1 つの項目が見つかりました。

キャッシュ更新プランtitleonly_refresh735amM2F移行しています...成功
キャッシュ更新計画 イエス イエス
画像 イエス イエス
レポート パーツ イエス イエス

必要なアクセス許可

項目とリソースの読み取りまたは書き込みに必要なアクセス許可は、スクリプトで使用されるすべてのメソッドで同じではありません。 次の表は、各アイテムまたはリソースに使用するメソッドをまとめたもので、各メソッドはそれぞれ関連するコンテンツにリンクされています。 個々のトピックに移動して、必要なアクセス許可を確認します。 たとえば、ListChildren メソッドのトピックでは、次の必要なアクセス許可が書き込まれます。

  • ネイティブ モードで必要な権限: アイテムに対する ReadProperties

  • SharePoint モードで必要な権限: ViewListItems

アイテムまたはリソース 情報源 目標
カタログ品目 ListChildren

GetProperties

GetItemDataSources

GetItemReferences

GetDataSourceContents

GetItemLink
CreateCatalogItem

SetItemDataSources

GetItemReferences

CreateDataSource

CreateLinkedItem

CreateFolder
役割 ListRoles

GetRoleProperties
CreateRole
システム ポリシー GetSystemPolicies SetSystemPolicies
スケジュール ListSchedules CreateSchedule
サブスクリプション ListSubscriptions

GetSubscriptionProperties

GetDataDrivenSubscriptionProperties
CreateSubscription

CreateDataDrivenSubscription
キャッシュ更新計画 ListCacheRefreshPlans

GetCacheRefreshPlanProperties
CreateCacheRefreshPlan
パラメーター GetItemParameters SetItemParameters
実行オプション GetExecutionOptions SetExecutionOptions
[キャッシュ オプション] GetCacheOptions SetCacheOptions
履歴の設定 GetItemHistoryOptions SetItemHistoryOptions
アイテム ポリシー GetPolicies SetPolicies

詳細については、「 Reporting Services の役割とタスクを SharePoint グループと権限と比較する」を参照してください。

スクリプトの使用方法

  1. スクリプト ファイルをローカル フォルダー (c: \rss\ssrs_migration.rssなど) にダウンロードします。

  2. 管理者特権を使用してコマンド プロンプトを開きます。

  3. ssrs_migration.rss ファイルのあるフォルダーに移動します。

  4. シナリオに適したパラメーターを指定してコマンドを実行します。

基本的な例 (ネイティブ モード レポート サーバー間):

次の例では、ネイティブ モード Sourceserver からネイティブ モード Targetserverにコンテンツを移行します。

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"

使用に関するメモ:

  • スクリプトは 2 つのステップで実行されます。

    最初の手順は、移行される項目の一覧を返す監査であり、2 番目の手順は移行プロセスです。

    可能な移行リストのみを表示する場合、またはパラメーターを変更する場合は、手順 1 の 後にスクリプトを取り消 すことができます。 依存設定は、手順 1 では一覧に表示されません。 たとえば、レポートのキャッシュ オプションは表示されませんが、レポート自体は表示されます。

    ヒント

    単一のサーバーのみを監査する場合は、移行元と移行先に同じサーバーを使用し、手順 1. の後でキャンセルします

    最初のステップで一覧表示される監査情報は、移行元と移行先の両方のネイティブ モード サーバー上の既存のロールを確認するために役立ちます。 手順 1 の監査リストの例を次に示します。 スイッチ -v security="True" を使用したため、一覧に "roles" セクションが含まれています。

    • Retrieve and report the list of items that will be migrated. You can cancel the script after step 1 if you do not want to start the actual migration.

      Retrieving roles:

      Role: Browser

      Role: Content Manager

      Role: Model Item Browser

      Retrieve and report the list of items that will be migrated. You can cancel the script after step 1 if you do not want to start the actual migration.

      Retrieving roles:

      Role: Browser

      Role: Content Manager

      Role: CustomRole

      Role: Model Item Browser

      Role: My Reports

      Role: Publisher

      Role: Report Builder

      Role: System Administrator

      Role: System User

      Retrieving system policies:

      Retrieving system policies:

      System policy: BUILTIN\Administrators

      System policy: domain\user1

      System policy: domain\ueser2

      Retrieving schedules:

      Schedule: theMondaySchedule

      Retrieving catalog items. This may take a while.

      Folder: /Data Sources

      DataSource: /Data Sources/Aworks2012_oltp

      Folder: /images

      Resource: /images/Boba Fett.png

      Resource: /images/R2-D2.png

      Folder: /Reports

      Report: /Reports/products

      Report: /Reports/test

      Report: /Reports/TitleOnly

  • SOURCE_URL と TARGET_URL は、移行元と移行先の Reporting Services レポート サーバーを参照する有効なレポート サーバー URL であることが必要です。 ネイティブ モードでは、レポート サーバーの URL は次のようになります。

    • https://servername/reportserver

    SharePoint モードでは、URL は次のようになります。

    • https://servername/_vti_bin/reportserver
  • SharePoint でユーザーに表示される仮想フォルダー構造は、基になっている構造と異なる場合があります。 ブラウザーで https://servername/_vti_bin/reportserver または https://servername/sites/site_name/_vti_bin/reportserver を開き、非仮想フォルダー構造を表示します。 これは、SharePoint モードのサーバーのソース フォルダーとターゲット フォルダーを "/" 以外に設定する場合に役立ちます。

  • パスワードは移行されず、資格情報が格納されているデータ ソースなど、再入力する必要があります。

パラメーターの説明

パラメーター 説明 必須
-s Source_URL 移行元レポート サーバーの URL。 イエス
-u Domain\password -p password 移行元サーバーの資格情報。 省略可能。省略した場合は既定の資格情報が使用されます。
-v st="SITE" 省略可能。 このパラメーターは SharePoint モード レポート サーバーにのみ使用されます。
- v f="SOURCEFOLDER" すべての移行の場合は "/" に設定し、部分的な移行の場合は "/フォルダー/サブフォルダー" に設定します。 このフォルダー内のすべてがコピーされます 省略可能。既定値は "/" です。
-v ts="TARGET_URL" 移行先 RS サーバーの URL。
-v tu="domain\username" -v tp="password" ターゲット サーバーの資格情報。 省略可能。省略した場合は既定の資格情報が使用されます。 注: ユーザーは、共有スケジュールの "作成者" として一覧表示され、ターゲット サーバーのレポート アイテムの "変更者" アカウントとして表示されます。
-v tst="SITE" 省略可能。 このパラメーターは SharePoint モード レポート サーバーにのみ使用されます。
-v tf ="TARGETFOLDER" ルート レベルに移行するには、"/" に設定します。 既に存在するファイルにコピーするには、"/folder/subfolder" に設定します。 "SOURCEFOLDER" 内のすべてのものが "TARGETFOLDER" にコピーされます。 省略可能。既定値は "/" です。
-v security= "True/False" "False" に設定すると、対象のカタログ アイテムはターゲット システムの設定に従ってセキュリティ設定を継承します。 これは、ネイティブ モードから SharePoint モードなど、さまざまな種類のレポート サーバー間の移行に推奨される設定です。 "True" に設定すると、スクリプトはセキュリティ設定の移行を試みます。 省略可能。既定値は "False" です。

その他の例

ネイティブ モードのレポート サーバーからネイティブ モードのレポート サーバー

次の例では、ネイティブ モード Sourceserver からネイティブ モード Targetserverにコンテンツを移行します。

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"  

次の例では、security スイッチを追加します。

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password" -v security="True"  

ネイティブモードから SharePointモードへ - ルートサイト

次の例では、ネイティブ モード SourceServer から SharePoint モード サーバー TargetServer上の "ルート サイト" にコンテンツを移行します。 ネイティブ モード サーバー上の "レポート" フォルダーと "データ ソース" フォルダーは、SharePoint 展開の新しいライブラリとして移行されます。

ssrs_rss_migrate_root_site

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p Password -v ts="http://TargetServer/_vti_bin/ReportServer" -v tu="Domain\User" -v tp="Password"  

ネイティブ モードから SharePoint モードへの変換 -「bi」サイト コレクション

次の例では、ネイティブ モード サーバーから、"sites/bi" サイト コレクションおよび共有ドキュメント ライブラリを含む SharePoint サーバーにコンテンツを移行します。 スクリプトは移行先ドキュメント ライブラリ内にフォルダーを作成します。 たとえば、スクリプトによって、ターゲット ドキュメント ライブラリに "レポート" フォルダーと "データ ソース" フォルダーが作成されます。

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p Password -v ts="http://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"  

SharePoint モードから別の SharePoint モードへ -「bi」サイトコレクション

この例では、次のようにコンテンツを移行します。

  • "sites/bi" サイト コレクションおよび共有ドキュメント ライブラリを含む SharePoint サーバー SourceServer から。

  • "sites/bi" サイト コレクションおよび共有ドキュメント ライブラリを含む SharePoint サーバー TargetServer に。

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/_vti_bin/reportserver -v st="sites/bi" -v f="Shared Documents" -u Domain\User1 -p Password -v ts="http://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"  

ネイティブモードからネイティブモードへ - Azure 仮想マシン

この例では、次のようにコンテンツを移行します。

  • ネイティブ モードのレポート サーバー SourceServer から

  • Azure 仮想マシンで実行されている TargetServer ネイティブ モードのレポート サーバー。 TargetServerSourceServer のドメインに参加せず、User2 は Azure 仮想マシン TargetServer の管理者です。

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\user1 -p Password -v ts="http://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Password2"  

ヒント

Windows PowerShell を使用して Azure 仮想マシン上に Reporting Services レポート サーバーを作成する方法については、「 PowerShell を使用してネイティブ モードのレポート サーバーを使用して Azure VM を作成する」を参照してください。

Azure 仮想マシン上のネイティブモードサーバーへの SharePoint の 'bi' サイトコレクション

この例では、次のようにコンテンツを移行します。

  • "sites/bi" のサイト コレクションと共有ドキュメント ライブラリを含む SharePoint モードのレポート サーバー SourceServer から。

  • Azure 仮想マシンで実行されている TargetServer ネイティブ モードのレポート サーバー。 TargetServerSourceServer のドメインに参加せず、User2 は Azure 仮想マシン TargetServer の管理者です。

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://uetesta02/_vti_bin/reportserver -u user1 -p Password -v ts="http://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Passowrd2"  

検証

このセクションは、コンテンツとポリシーが正常に移行されたことを確認するために移行先サーバーで実行する一部の手順をまとめたものです。

スケジュール

ターゲット サーバーでスケジュールを確認するには:

ネイティブ モード

  1. コピー先サーバーのレポート マネージャーにアクセスします。

  2. 上部のメニューの [ サイトの設定] をクリックします。

  3. 左側 ウィンドウで [スケジュール] をクリックします。

SharePoint モード:

  1. [サイトの設定] を参照します。

  2. [Reporting Services] グループで、[共有スケジュールの管理] をクリックします。

ロールとグループ

ネイティブ モード

  1. SQL Server Management Studio を開き、ネイティブ モード レポート サーバーに接続します。

  2. オブジェクト エクスプローラーで、[セキュリティ] をクリックします。

  3. ロールをクリックします。

トラブルシューティング

より詳細な情報が表示されるようにするには、トレース フラグ -t を使用します。 たとえば、スクリプトを実行し、次のようなメッセージが表示されたとします。

  • サーバーに接続できませんでした: http://<servername>/ReportServer/ReportService2010.asmx

t フラグを指定してスクリプトをもう一度実行すると、次のようなメッセージが表示されます。

  • System.Exception: Could not connect to server: http://<servername>/ReportServer/ReportService2010.asmx ---> System.Net.WebException: 要求は HTTP ステータス 401: Unauthorized で失敗しました。 at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at Microsoft.SqlServer.ReportingServices2010.ReportingService2010.IsSSLRequired() at Microsoft.ReportingServices.ScriptHost.Management2010Endpoint.PingService(String url, String userName, String password, String domain, Int32 timeout) at Microsoft.ReportingServices.ScriptHost.ScriptHost.DetermineServerUrlSecurity() --- 内部例外スタックトレース終わり ---

こちらもご覧ください

RS.exe ユーティリティ (SSRS)
Reporting Services のロールおよびタスクと SharePoint のグループおよび権限の比較