Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
lorcz
Helper I
Helper I

How to migrate SSRS reports to Power BI Report Server?

I found this Microsoft documentation but I couldn't anywhere on the page what "-e" means. I looked at the ssrs_migration.rss file and there is no mention of what -e Mgtm2010 even means. Do I need to use -e in my environment? If so, instead of Mgmt2010, what should it be? Thanks!

29 REPLIES 29

Okay, finally have the time to work on this issue again.

 

This is the error I got from this execution.

lorcz_0-1655750597892.png

I'm curious, how does it know which server to grab/copy the "Budget" report from if I'm not specifying the server name in this script?

$ReportServerUri = 'http://db22/ReportServer/ReportService2010.asmx'

$SourceFolderPath = 'http://db21/ReportServer/'

And:

$ReportServerUri = 'http://db22/ReportServer/ReportService2010.asmx'

$SourceFolderPath = 'http://db22/ReportServer/'

And:

$ReportServerUri = 'http://db21/ReportServer/ReportService2010.asmx'

$SourceFolderPath = 'http://db21/ReportServer/'

 

Are all resulting in similar error the following.

lorcz_0-1652899593646.png

 

Correct the variable ... Say, $SourceFolderPath = "/Budget"

It is the folder path from the root, and not the full url.

Just confirm, the variable should say:

 

$SourceFolderPath="http://db21/Budget/"

 

And the target leave as:

 

$ReportServerUri = 'http://db22/ReportServer/ReportService2010.asmx'

 

Is this correct?

 

$ReportServerUri = 'http://db22/ReportServer/ReportService2010.asmx' # the url in the browser gives WSDL / XML, make sure this is valid URL

$SourceFolderPath = '/Budget' # Replace with the folder path you have access. without "/" at the end, Say /Budget, /ORSP... based on your previous image

$items = $null
$Proxy = $null

$Proxy = New-WebServiceProxy -Uri $ReportServerUri -Namespace SSRS.ReportingService2010 -UseDefaultCredential
$items = $Proxy.ListChildren($sourceFolderPath, $true) | Select-Object Type, Path, Name

if ($items -eq $null) { 
    Write-Host "No Items found!" 
}
else {
    $items
}

# ------------------------------------
Write-Host "----------------------------------"
Write-Host "ReportServerUri: " $ReportServerUri
Write-Host "SourceFolderPath: " $SourceFolderPath
Write-Host "----------------------------------"
Write-Host "Proxy: " $Proxy
Write-Host "----------------------------------"
Write-Host "Items:" 
$items
Write-Host "----------------------------------"

 

Okay, with that change ,there is no error. What's next?

lorcz_0-1652904569968.png

 

Now that you successfully ran on the source server, Run the same code from target server. 

 

No code changes. Let me know if it ran successfully. If it runs successfully that means you can ping and consume web service both sides good.

Okay, I got the same thing, no error when running either the source and target server. Okay, so that means I can ping and consume web service on both sides but am I still getting error runing the script to migrate. Do I need to change my script when migrating?

Good, this proves our progress ... 

- Code to connect via webservice is correct

- No firewall issue

- No webservice related issue

- Can ping and consume webservice via powershell !

Quick check, in the output, when you ran the powershell, can you see any output for "$items"? This should give report list in that folder. 

 

Next is migration script fix ... 

Helpful resources

Announcements
PBIApril_Carousel

Power BI Monthly Update - April 2025

Check out the April 2025 Power BI update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

April2025 Carousel

Fabric Community Update - April 2025

Find out what's new and trending in the Fabric community.