レポート サーバー間でコンテンツを移行するサンプル Reporting Services rs.exe スクリプト
このトピックでは、RS.exeユーティリティを使用して、1 つのSQL Server Reporting Services レポート サーバーから別のレポート サーバーにコンテンツ アイテムと設定をコピーする RSS スクリプトReporting Servicesサンプルについて説明します。 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 | ネイティブ |
コンテンツを | SharePoint |
コピーする | SharePoint |
RS.exe ユーティリティの詳細については、「RS.exe ユーティリティ (SSRS)」をご覧ください。
スクリプトが移行するアイテムとリソース
スクリプトは同じ名前の既存のコンテンツ アイテムを上書きしません。 スクリプトが移行元サーバー上のアイテムと同じ名前のアイテムを移行先サーバーで検出した場合、個々のアイテムについて "FAILURE" メッセージが表示されますが、スクリプトは続行されます。 次の表は、スクリプトを使用して移行先のモードのレポート サーバーに移行できるコンテンツとリソースの種類を示したものです。
Item | 移行対象 | SharePoint | 説明 |
---|---|---|---|
パスワード | いいえ | いいえ | パスワードは移行 されません 。 コンテンツ アイテムの移行後、移行先サーバーで資格情報を更新します。 たとえば、保存された資格情報を使用するデータ ソースなどです。 |
個人用レポート | いいえ | いいえ | ネイティブ モードの "個人用レポート" 機能は個々のユーザー ログインに基づいているため、スクリプト作成サービスは、rss スクリプトに渡される -u パラメーターで指定されていないユーザーの "My Reports" フォルダー内のコンテンツにアクセスすることはできません。 また、"個人用レポート" は SharePoint モードReporting Services機能ではなく、フォルダー内のアイテムを 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 モードへの移行のとき、スクリプトは、「 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. 資格情報は、データ ソースの一部としてコピー されません 。 コンテンツ アイテムの移行後、移行先サーバーで資格情報を更新します。 |
共有データセット | はい | はい | |
Folder | はい | はい | スクリプトはターゲット サーバー上の既存のアイテムを上書きしません。 同じ名前のアイテムがターゲット サーバーに既に存在する場合は、次のようなエラー メッセージが表示されます。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) と関連設定 (キャッシュ更新オプションなど) を移行するときの出力例です。 Migrating parameters for report TitleOnly.rdl 0 items found. Migrating subscriptions for report TitleOnly.rdl:1 items found. サブスクリプションの移行 \\server\public\savedreports に TitleOnly ..として保存します。成功 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 items found. Migrating cache refresh plan titleonly_refresh735amM2F ...SUCCESS |
キャッシュ更新計画 | はい | はい | |
イメージ | はい | はい | |
レポート パーツ | はい | はい |
必要なアクセス許可
アイテムやリソースの読み書きに必要な権限は、スクリプトで使用されるすべてのメソッドで同じではありません。 次の表は、各アイテムまたはリソースに使用するメソッドをまとめたもので、各メソッドはそれぞれ関連するコンテンツにリンクされています。 必要な権限を表示するには、個々のトピックに移動してください。 たとえば、ListChildren メソッドのトピックでは、必要な権限が次のように示されています。
ネイティブ モードで必要な権限: アイテムに対する ReadProperties
SharePoint モードで必要な権限: ViewListItems
詳しくは、「 Reporting Services のロールおよびタスクと SharePoint のグループおよび権限の比較」をご覧ください。
スクリプトの使用方法
スクリプト ファイルをローカル フォルダー (c: \rss\ssrs_migration.rssなど) にダウンロードします。
管理者特権を使用してコマンド プロンプトを開きます。
ssrs_migration.rss ファイルのあるフォルダーに移動します。
シナリオに適したパラメーターを指定してコマンドを実行します。
基本的な例 (ネイティブ モード レポート サーバー間):
次の例では、ネイティブ モード 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 の後にキャンセルします。
最初のステップで一覧表示される監査情報は、移行元と移行先の両方のネイティブ モード サーバー上の既存のロールを確認するために役立ちます。 次に示しているのは、最初のステップである監査で表示される一覧の例です。 スイッチ -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" | ルート レベルに移行する場合は "/" に設定します。 既存のフォルダーにコピーする場合は "/フォルダー/サブフォルダー" に設定します。 "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上の "ルート サイト" にコンテンツを移行します。 ネイティブ モード サーバー上の "Reports" および "Data Sources" フォルダーは SharePoint 配置上の新しいライブラリとして移行されます。
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 サーバーにコンテンツを移行します。 スクリプトは移行先ドキュメント ライブラリ内にフォルダーを作成します。 たとえば、移行先ドキュメント ライブラリ内に "Reports" および "Data Sources" フォルダーを作成します。
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 に。 TargetServer は SourceServer のドメインに参加せず、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 に。 TargetServer は SourceServer のドメインに参加せず、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"
検証
このセクションは、コンテンツとポリシーが正常に移行されたことを確認するために移行先サーバーで実行する一部の手順をまとめたものです。
スケジュール
ターゲット サーバーでスケジュールを確認するには:
Native Mode
移行先サーバーでレポート マネージャーを参照します。
トップ メニューの [サイトの設定] をクリックします。
左ペインで [スケジュール] をクリックします。
SharePoint モード:
[サイトの設定] を参照します。
[Reporting Services] グループで、 [共有スケジュールの管理] をクリックします。
ロールとグループ
Native Mode
SQL Server Management Studio を開き、ネイティブ モード レポート サーバーに接続します。
オブジェクト エクスプローラー で [セキュリティ] をクリックします。
[ロール] をクリックします。
トラブルシューティング
より詳細な情報が表示されるようにするには、トレース フラグ -t を使用します。 たとえば、スクリプトを実行し、次のようなメッセージが表示されたとします。
- サーバーに接続できませんでした: http://< servername>/ReportServer/ReportService2010.asmx
-t フラグを指定してスクリプトをもう一度実行すると、次のようなメッセージが表示されます。
- System.Exception: サーバーに接続できませんでした: 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() --- End of inner exception stack trace (内部例外スタック トレースの終わり) ---
参照
RS.exe Utility (SSRS)
Reporting Services のロールおよびタスクと SharePoint のグループおよび権限の比較