共用方式為


範例 Reporting Services rs.exe 腳本,用於在報表伺服器之間遷移內容

本主題包含並描述範例 Reporting Services RSS 腳本,該腳本會使用 RS.exe 公用程式,將內容專案和設定從一部 SQL Server Reporting Services 報表伺服器複製到另一部報表伺服器。 RS.exe 會與 Reporting Services 一起安裝,同時為原生和 SharePoint 模式。 腳本會將 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 的任何伺服器執行文稿。 例如,在下列部署中,您可以:

  • 執行 RS.exe 並在伺服器 A 上啟動腳本。

  • 伺服器 B 複製內容

  • 伺服器 C

伺服器名稱 報表伺服器模式
伺服器 A 本地人
伺服器 B SharePoint
伺服器 C SharePoint

如需 RS.exe 公用程式的詳細資訊,請參閱 RS.exe 公用程式 (SSRS)

腳本移轉的項目和資源

腳本不會覆蓋相同名稱的現有內容項目。 如果腳本偵測到來源伺服器上目的地伺服器上具有相同名稱的專案,個別專案將會產生「失敗」訊息,腳本將會繼續。 下表列出腳本可移轉至目標報表伺服器模式的內容和資源類型。

項目 已移轉 SharePoint 說明
密碼 密碼不會移轉。 移轉內容項目之後,請更新目的地伺服器上的認證資訊。 例如,具有預存認證的數據源。
我的報表 原生模式 「我的報表」功能是以個別使用者登入為基礎,因此腳本服務無法存取用於執行 rss 腳本之 -u 參數以外的使用者「我的報表」資料夾中的內容。 此外,「我的報表」不是 Reporting Services SharePoint 模式的功能,資料夾中的項目無法複製到 SharePoint 環境。 因此,腳本不會複製來源原生模式報表伺服器上 「我的報表」資料夾中的報表專案。 若要使用此文稿移轉 「我的報表」資料夾中的內容,請完成下列作業:

1) 在報表管理員中建立新資料夾。 您可以選擇性地為每個使用者建立資料夾或子資料夾。

2)以其中一位擁有「我的報告」內容的使用者身分登入。

3) 在報表管理員中,按兩下 [我的報表] 資料夾。

4) 按下資料夾的詳細 資料檢視

5) 選取您想要複製的每個報表。

6) 按兩下 [報表管理員] 工具列中的 [ 移動 ]。

7) 選取所需的目的地資料夾。

8) 針對每個使用者重複步驟 2-7。

9) 執行腳本。
歷史
歷史設定 是的 是的 歷程記錄設定會移轉,但歷程記錄詳細數據不會移轉。
附表 是的 是的 若要移轉排程,SQL Server Agent 必須在目標伺服器上執行。 如果 SQL Server Agent 未在目標上執行,您會看到類似下列的錯誤訊息:

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 的參數:未找到任何項目。

移轉報表 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"

使用量注意事項:

  • 腳本會以兩個步驟執行。

    第一個步驟是稽核,可傳回要移轉的專案清單,而第二個步驟是移轉程式。

    如果您只想要查看可能的移轉清單,或想要修改參數,則可以在 步驟一之後取消腳本 。 依賴設定不會列在步驟一裡。 例如,報表的快取選項不會列出,但報表本身會列出。

    小提示

    如果您想要只稽核單一伺服器,請針對來源和目的地使用相同的伺服器,並在步驟 1 之後取消

    若要善用步驟 1 的稽核資訊,可以用來檢閱來源和目標原生模式伺服器上的現有角色。 以下是步驟一稽核清單的範例。 請注意,清單包含「角色」區段,因為已使用 switch-v security=“True” :

    • 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/reportserverhttps://servername/sites/site_name/_vti_bin/reportserver 查看非虛擬資料夾結構。 在 SharePoint 模式中使用伺服器時,這有助於將源資料夾和目標資料夾設定為非 “/” 的其他選項。

  • 密碼不會移轉,而且必須重新輸入,例如具有預存認證的數據源。

參數描述

參數 說明 為必填項目
-s Source_URL 來源報表伺服器的 URL 是的
-u Domain\password -p password 來源伺服器的認證。 如果遺漏,則會使用選擇性的默認認證
-v st=“SITE” 選擇性。 此參數僅適用於 SharePoint 模式報表伺服器。
- v f=“SOURCEFOLDER” 設定為 "/" 以遷移所有內容,或設定為類似 "/folder/subfolder" 以進行部分遷移。 此資料夾內的所有項目都會複製 選擇性,預設值為 “/”。
-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 安全性= “是/否” 如果設定為 「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"  

下列範例會新增安全性開關:

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

  • TargetServer SharePoint 伺服器,其中包含「sites/bi」網站集合以及一個共享文件庫。

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

SharePoint 模式 -'bi' 網站集合至 Azure 虛擬機上的原生模式伺服器

下列範例會移轉內容:

  • 從 SharePoint 模式報表伺服器 SourceServer ,其中包含 「sites/bi」 和共用文檔庫的網站集合。

  • 在 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"  

驗證

本節摘要說明目的地伺服器上要採取一些步驟,以確認內容和原則已成功移轉。

附表

若要確認目標伺服器上的排程:

原生模式

  1. 流覽至目的地伺服器上的報表管理員。

  2. 點擊頂端選單上的 [網站設定 ]。

  3. 按兩下左窗格中的 [ 排程 ]。

SharePoint 模式:

  1. 流覽至 [網站設定]。

  2. Reporting Services 群組中,按兩下 [管理共用排程]。

角色和群組

原生模式

  1. 開啟 SQL Server Management Studio 並連線到原生模式報表伺服器。

  2. [物件總管]中,按一下[安全性]

  3. 按一下 [角色]。

故障排除

使用追蹤旗標 -t 來接收詳細資訊。 例如,如果您執行腳本,並看到類似下列的訊息

  • 無法連線到伺服器:http://< servername>/ReportServer/ReportService2010.asmx

使用 -t 旗標再次執行文稿,以查看類似下列的訊息:

  • System.Exception:無法連線到伺服器:http:// servername>/ReportServer/ReportService2010.asmx ---> System.Net.WebException:要求失敗,HTTP 狀態為 401:未經授權。< 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 群組及其權限進行比較