Migrate RDL Reports to another SSRS/PBIRS using RS.exe Utility

Migrate RDL Reports: In this article we are going to see how can we transfer all rdl reports from one server to another server (1-SSRS Instance to 2-SSRS Instances). The below are the list of prerequisites required before we proceed further.

This Microsoft article will help you more with this RS.exe Utility: RS.exe Utility – SQL Server Reporting Services (SSRS) | Microsoft Learn

Prerequisites:

  1. Download  “ssrs_migration.rss” Script File: Sample Reporting Services rs.exe Script to Copy Content between Report Servers – SQL Server Reporting Services (SSRS) | Microsoft Learn.
  2. Source SSRS/PBIRS Instance Name and URL Path (SQL16 &  http://sqlstandalonevm/ReportServer_SQL16).
  3. Destination SSRS/PBIRS Instance Name and URL Path (SSRS & http://sqlstdalonevm/ReportServer).
  4. Not required to create folders for the destination server because the script will do it automatically no matter how many sub folders you have. Twist: If you are doing just folder level migration, from one folder to another, which has different names then you have created one, if you are migrating everything, then no need to create one!
  5. It will not migrate PBIX Reports, it is not yet supported, and also you need to re-enter the password for user data sources authentication.
  6. Follow the below mentioned STEPS and read carefully all the notes.

Locate RS.EXE using below steps:

Go to Machine where YOUR “Source SSRS” is hosted and copy the file path and put it in note pad. In my case I am using SSRS 2016 so I will use this path: C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn

According to your version please copy the file path from below list:

  1. Applies to SSRS 2016

C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn

  1. Applies to SSRS 2017 & above

C:\Program Files\Microsoft SQL Server Reporting Services\Shared Tools

  1. Applies to PBIRS

C:\Program Files\Microsoft Power BI Report Server\Shared Tools

Migrate RDL Reports Steps:

Step 1: Download  “ssrs_migration.rss” Script File from above mentioned link (Prerequisites) as shown in the below image.

Migrate RDL Reports

Step 2: Once downloaded please open command prompt with admin rights and browse the folder path where you have downloaded the “ssrs_migration.rss” file from above step. In my case I have put that file in “C” drive.

image 4

Note: Make sure you are in the directory folder where the “ssrs_migration.rss” is located. E.g., if your .rss file is in “C:/Scripts” path then in the cmd you have to be in that path, it will show like this in CMD “C:/>Scripts>” OR The best option is to specify the complete path in this way -i “C:\Scripts\ssrs_migration.rss”

Step 3: Now use this below code as mentioned, only the modification is to be done with Source SSRS and Destination SSRS URL. I have given exact explanation below with distinct colours. Also, the same script sometimes might not work with older version of PowerShell/Windows Server so use the new old method.

Migration Script (New PowerShell)

cmd /c ‘”C:\Program Files\Power BI Report Server\Shared Tools\rs.exe” -i ssrs_migration.rss -e Mgmt2010 -s http://sqlstdalonevm/ReportServer-Src -u
KTT\admin -p Pass$$ord1@
 -v f=”/-v ts="http://sqlstdalonevm/ReportServer -v tu=”KTT\sqlb2.admin” -v tp=”Pass$$ord1@” -v tf=”/” -v security=”True”‘

OR

Migrate Script (Old PowerShell)

C:\Program Files\Power BI Report Server\Shared Tools\rs.exe” -i ssrs_migration.rss -e Mgmt2010 -s http://sqlstdalonevm/ReportServer-Src -u
KTT\admin -p Pass$$ord1@
 -v f=”/-v ts="http://sqlstdalonevm/ReportServer-Dst” -v tu=”KTT\sqlb2.admin” -v tp=”Pass$$ord1@” -v tf=”/” -v security=”True”

  1. "C:\Program Files\Power BI Report Server\Shared Tools\rs.exe = is the Source SSRS rs.exe Path location (Refer Locate RS.EXE using below steps).
  2.  -i ssrs_migration.rss -e Mgmt2010 = need to be as it, do not make any changes. If you want, we can specify the complete path in double quotes, instead navigating to the folder location of ssrs_migration.rss from powershell/cmd.
  3. -s http://sqlstdalonevm:8080/ReportServer-Src = My “Source SSRS” Report URL Link (Refer Prerequisites)
  4. -u KTT\admin -p Pass$$ord1@ = Domain user & password for the source server (SSRS/PBIRS)
  5. f=”/” = is the target folder of source SSRS to be moved, for all put “/” and if you want specific folder then put folder name.
  6. -v ts="http://sqlstdalonevm/ReportServer-Dst" = It is my “Destination SSRS” URL (Refer Prerequisites)
  7. tu=”KTT\sqlb2.admin” = Domain user & password for the destination server (SSRS/PBIRS)
  8. tf=”/” = target folder for destination folder, for all put “/” and if you want specific folder then put folder name which is already created at the destination level if you are just doing it for specific source folder reports migration.
  9. -v security=”True” = Move Permissions from Source Server. “False” to inherit permissions from destination server. This is major concept which people have, if you want to move all folder and roles permissions from source to destination then use True, if not put False.

Once you “RUN” this above script the list of report in your SSRS will be visible as you can see below. In my case it is only two reports available in my RS Portal, the One report is normal “hello world” report and other one is “movie report” which consist of SQL database and has multiple parameters in it. You will get confirmation pop-up as you can see, just click on okay to start the migration process.

Without Folder Level Migration
Get the list of folders, schedules, subscriptions, folders, roles, users, groups, permissions, data source at the first step!
With Folder Level Migration
Once you hit enter the script will start migrating the required things which was shown at the first step!

Depending on the number of reports, it will take some time to initiate the transfer. List of operations will be shown on your CMD console. So just wait until the transfer or migration completes. Once done, you will get confirmation message as you can see in the below image.

image 7

Result:

I will show you the after result that is when source SSRS report was successfully migrated to my new SSRS instance. As you can see in the below images, I have two reports before migration which was present in the SQL_16 report server URL and that both rdl files reports are now present in my SSRS 2019. Instance

Source SSRS Reports lists:

image 5

Destination SSRS Report Lists:

image 6

SQL Bi Links:

  1. Port Number For Analysis Services – Find Ports For SSAS? (kingfishertechtips.com)
  2. SMTP Server In SSRS/PBIRS |Subscribe To Email Problem/Issue (kingfishertechtips.com)
  3. SQL Server 2022 Download, Install, Connect Using SSMS Tool (kingfishertechtips.com)
  4. Creating Tabular Project & Deploy Model To Analysis Service (kingfishertechtips.com)
  5. Deploy Tabular Project To Azure Analysis Service – SSDT Tool (kingfishertechtips.com)
  6. SSRS/PBIRS – Install And Configure The Report Server On-Prem (kingfishertechtips.com)
  7. Could Not Load Folder Contents In Portal URLs – SSRSPBIRS (kingfishertechtips.com)
  8. SSRS/PBIRS – Install And Configure The Report Server On-Prem (kingfishertechtips.com)
  9. SQL Server 2022 Download, Install, Connect Using SSMS Tool (kingfishertechtips.com)
  10. Capture Fiddler Trace for Debugging the Network Traffic (kingfishertechtips.com)
  11. On-Premises Gateway: Configure/Map SQL DB To Power Bi (kingfishertechtips.com)
  12. Fixed Column/Row Header Make Visible In Any Report (kingfishertechtips.com)
  13. Self-Signed Certificate: Configure SSRS/PBIRS With SSL (kingfishertechtips.com)
  14. Create Local User Account/Local Admin User In Windows 10/11 (kingfishertechtips.com)
  15. Login With AAD/Domain/Microsoft Account To Azure VM’s/RDP (kingfishertechtips.com)
Vickey Rajpoot

Vickey Rajpoot

Hello there! I'm dedicated Microsoft Data & AI Engineer at LTIMindtree, where I thrive technology into actionable insights. Dive into my world by visiting my YouTube channel & Website, "Kingfisher Tech Tips"

2 Comments

  1. Does this work this pbix reports, I get error when I try to do it…. This work perfectly fine with rdl reports and datasources.

Leave a Reply

Your email address will not be published. Required fields are marked *