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

適用対象: SQL Server Reporting Services (2008 R2 以降) SharePoint Power BI Report Server

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

注意

オープンソースの ReportingServicesTools PowerShell モジュールも使用できます。

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

GitHub サイト「Reporting Services RS.exe migration script」 (Reporting Services RS.exe 移行スクリプト) からスクリプトをローカル フォルダーにダウンロードします。 詳細については、この記事内の「スクリプトの使用方法」をご覧ください。

サポートされるシナリオ

スクリプトは SharePoint モードとネイティブ モードの両方のレポート サーバーをサポートしています。 スクリプトは、レポート サーバー バージョン SQL Server 2008 R2 (10.50.x) 以降と、Power BI Report Server をサポートしています。

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

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

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

  • サーバー C コピーする

サーバー名 [レポート サーバー モード]
サーバー A ネイティブ
コンテンツを SharePoint
コピーする SharePoint

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

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

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

Item 移行対象 SharePoint 説明
パスワード いいえ いいえ パスワードは移行 されません 。 コンテンツ アイテムの移行後、移行先サーバーで資格情報を更新します。 たとえば、保存された資格情報を使用するデータ ソースなどです。
個人用レポート いいえ いいえ ネイティブ モードの "個人用レポート" 機能は個々のユーザーのサインイン情報に基づいているため、スクリプト作成サービスは、rss スクリプトに渡される -u パラメーターで指定されていないユーザーの "個人用レポート" フォルダー内のコンテンツにアクセスすることはできません。 また、"個人用レポート" は Reporting Services SharePoint モードの機能ではないため、このフォルダー内のアイテムを SharePoint 環境にコピーすることはできません。 したがって、スクリプトは移行元ネイティブ モード レポート サーバー上の "個人用レポート" フォルダー内にあるレポート アイテムをコピーしません。

このスクリプトを使用して "個人用レポート" フォルダー内のコンテンツを移行するには、次の手順を実行します。

1. Web ポータルで新しいフォルダーを作成します。 必要に応じて、ユーザーごとのフォルダーやサブフォルダーを作成できます。
2. "個人用レポート" のコンテンツを持ついずれかのユーザーとしてサインインします。
3. Web ポータルで、[個人用レポート] フォルダーを選択します。
4. フォルダーの [詳細] ビューを選択します。
5. コピーする各レポートを選択します。
6. Web ポータルのツール バーで [移動] を選択します。
7. 目的の移行先フォルダーを選択します。
8. 手順 2 から 7 を各ユーザーについて繰り返します。
9.スクリプトを実行します。
履歴 いいえ いいえ
履歴の設定 はい はい 履歴の設定は移行されますが、履歴の詳細は移行されません。
スケジュール はい はい スケジュールを移行するには、SQL Server エージェントがターゲット サーバーで実行されている必要があります。 SQL Server エージェントが移行先で実行されていない場合は、次のようなエラー メッセージが表示されます。

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

ソース サーバーとターゲット サーバーが同じレポート サーバー モードでない場合、たとえばネイティブ モードから SharePoint モードへの移行のとき、スクリプトは、「Reporting Services のロールおよびタスクと SharePoint のグループおよびアクセス許可の比較」の記事で説明している比較に基づいて、既定のロールとグループをマップしようとします。 カスタムのロールとグループは移行先サーバーにコピーされません。

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

ロールが移行先サーバーに既に存在する場合、スクリプトは次のような "FAILURE" メッセージを表示し、他のアイテムの移行を続行します。 スクリプトの完了後、移行先サーバー上のロールがご自分のニーズを満たすように構成されていることを確認してください。 移行中のロール: 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.
Power BI レポート いいえ いいえ Power BI Report Server でのみ使用できます

Out-RsRestFolderContent や Write-RsRestFolderContent などの Reporting Services の PowerShell コマンドを代わりに使用できます。
パラメーター はい はい
サブスクリプション はい はい
履歴の設定 はい はい 履歴の設定は移行されますが、履歴の詳細は移行されません。
処理オプション はい はい
キャッシュ更新オプション はい はい 依存設定はカタログ アイテムの一部として移行されます。 次に示すのは、スクリプトがレポート (.rdl) と関連設定 (キャッシュ更新オプションなど) を移行するときの出力例です。

- Migrating parameters for report TitleOnly.rdl 0 items found.
- Migrating subscriptions for report TitleOnly.rdl: 1 item found.
- Migrating subscription Save in \\server\public\savedreports as TitleOnly ...SUCCESS
- Migrating history settings for report TitleOnly.rdl ...SUCCESS
- Migrating processing options for report TitleOnly.rdl ... 0 items found.
- Migrating cache refresh options for report TitleOnly.rdl ... SUCCESS
- Migrating cache refresh plans for report TitleOnly.rdl: 1 item found.
- Migrating cache refresh plan titleonly_refresh735amM2F ... SUCCESS
キャッシュ更新計画 はい はい
イメージ はい はい
レポート パーツ はい はい
KPI いいえ いいえ Out-RsRestFolderContent や Write-RsRestFolderContent などの Reporting Services の PowerShell コマンドを代わりに使用できます。
モバイル レポート いいえ いいえ Out-RsRestFolderContent や Write-RsRestFolderContent などの Reporting Services の PowerShell コマンドを代わりに使用できます。
Excel ブック いいえ いいえ Power BI Report Server でのみ使用できます

Out-RsRestFolderContent や Write-RsRestFolderContent などの Reporting Services の PowerShell コマンドを代わりに使用できます。

Note

レポート パーツは、SQL Server Reporting Services 2019 以降の SQL Server Reporting Services のすべてのリリースと、Power BI Report Server 2022 年 9 月以降の Power BI Report Server のすべてのリリースで廃止になっています。

Note

SQL Server Mobile Report Publisher は、SQL Server Reporting Services 2019 より後の SQL Server Reporting Services のすべてのリリースで非推奨です。 SQL Server Reporting Services 2022 以降および Power BI Report Server で廃止されました。

必要なアクセス許可

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

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

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

アイテムまたはリソース source 移行先
カタログ アイテム ListChildren

GetProperties

GetItemDataSources

GetItemReferences

GetDataSourceContents

GetItemLink
CreateCatalogItem

SetItemDataSources

GetItemReferences

CreateDataSource

CreateLinkedItem

CreateFolder
Role 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 https://SourceServer/ReportServer -u Domain\User -p password -v ts="https://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"

使用に関するメモ:

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

    最初のステップは監査です。移行されるアイテムのリストが返されます。2 番目のステップは移行です。

    移行されるアイテムを一覧表示するのみ、またはパラメーターを変更するのみの場合は、最初の ステップの後にスクリプトをキャンセル できます。 依存設定は最初のステップで一覧表示されません。 たとえば、レポートのキャッシュ オプションは一覧表示されません。ただし、レポート自体は一覧表示されます。

    ヒント

    単に 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 はこの URL のようになります。

    • https://servername/reportserver

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

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

  • パスワードは移行されないため、再入力する必要があります。たとえば、保存された資格情報を使用するデータ ソースなどです。

パラメーターの説明

パラメーター Description 必須
-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" ルート レベルに移行する場合は / に設定します。 既存のフォルダーにコピーする場合は "/フォルダー/サブフォルダー" に設定します。 "SOURCEFOLDER" 内のすべてのコンテンツが "TARGETFOLDER" にコピーされます。 省略可能。既定値は / です。
-v security= "True/False" False に設定した場合、移行先カタログ アイテムには移行先システムの設定に従ってセキュリティ設定が継承されます。 この設定は、ネイティブ モードから SharePoint モードへなど、異なるモードのレポート サーバー間の移行にお勧めします。 True に設定した場合、スクリプトはセキュリティ設定を移行しようとします。 省略可能。既定値は False です。

その他の例

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

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

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

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

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

ネイティブ モードから SharePoint モード (ルート サイト)

次の例では、ネイティブ モード SourceServer から SharePoint モード サーバー TargetServer上の "ルート サイト" にコンテンツを移行します。 ネイティブ モード サーバー上の "Reports" および "Data Sources" フォルダーは SharePoint 配置上の新しいライブラリとして移行されます。

[データ ソースとレポート] メニュー オプションが強調表示されているスクリーンショット。

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

ネイティブ モードから SharePoint モード ("bi" サイト コレクション)

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

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s https://SourceServer/ReportServer -u Domain\User -p Password -v ts="https://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 https://SourceServer/_vti_bin/reportserver -v st="sites/bi" -v f="Shared Documents" -u Domain\User1 -p Password -v ts="https://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 https://SourceServer/ReportServer -u Domain\user1 -p Password -v ts="https://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Password2"  

ヒント

Windows PowerShell を使用して Azure 仮想マシン上に Reporting Services レポート サーバーを作成する方法については、PowerShell を使用したネイティブ モードのレポート サーバーを含む Azure VM の作成に関するページをご覧ください。

SharePoint モード ("bi" サイト コレクションから Azure 仮想マシン上のネイティブ モード サーバー)

次の例では、SharePoint モードのレポート サーバー の SourceServer ("sites/bi" のサイト コレクションおよび共有ドキュメント ライブラリを含む) から TargetServer (Azure 仮想マシンで実行されているネイティブ モードのレポート サーバー) にコンテンツを移行します。 TargetServerSourceServer のドメインに参加していません。User2 は Azure 仮想マシン TargetServer の管理者です。

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

検証

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

スケジュール

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

Native Mode

  1. 移行先サーバー上で Web ポータルを開きます。

  2. トップ メニューの [サイトの設定] を選択します。

  3. 左側のウィンドウで [スケジュール] を選択します。

SharePoint モード:

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

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

役割とグループ

Native Mode

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

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

  3. [役割] を選びます。

トラブルシューティング

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

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

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

  • System.Exception: Couldn't connect to server: https://\<servername>/ReportServer/ReportService2010.asmx ---> System.Net.WebException: **The request failed with HTTP status 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() --- End of inner exception stack trace ---

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