Download SSRS Reports

JavaScript

$baseUrl = "http://polevault"

$reportServerUri = "$baseUrl/ReportServer/ReportService2010.asmx?wsdl"
//Consuming ssrs web service
$rs = New-WebServiceProxy -Uri $reportServerUri -UseDefaultCredential -Namespace "SSRS" 

Write-Host "Starting..." -ForegroundColor Yellow -BackgroundColor Blue  

//Get Reports and Macros from webservice


$linkedReports = $rs.ListChildren("/", $true) | Where-Object { $_.TypeName -eq "Report" -and $_.Hidden -like "*F*" }
$excelReports = $rs.ListChildren("/", $true)  | Where-Object { $_.TypeName -eq "Resource" -and $_.Name -like "*xlsm*" }
$dataSources = $rs.ListChildren("/", $true) | Where-Object {$_.TypeName -eq "Datasource" }
$dataSetsRsd = $rs.ListChildren("/", $true)  | Where-Object {$_.TypeName -eq "DataSet" }

//Exporting to csv
$linkedReports = $linkedReports | select-object Name,Path // | Export-Csv  LinkedReports.csv -NoTypeInformation

$excelReports = $excelReports | select-object Name,Path // | Export-Csv  ExcelReports.csv -NoTypeInformation

$dataSources = $dataSources | select-object Name,Path

$dataSetsRsd = $dataSetsRsd | select-object Name,Path


//Create the output folder
$outputFolder = "Reports Folder"

if ( -Not (Test-Path $outputFolder.trim() ))
 {
  New-Item -Path $outputFolder -ItemType Directory   
  Write-Host "Folder created: $outputFolder" -ForegroundColor Yellow -BackgroundColor Blue  
 }
 else{
  Write-Host "Using folder $outputFolder" -ForegroundColor Yellow -BackgroundColor Blue  
 }


//New web-client
$myClient = new-object system.net.webclient
$myClient.UseDefaultCredentials = $true

//Now we start downloading the files
//Macros first
Write-Host "Excel..." -ForegroundColor Yellow -BackgroundColor Blue
for($i=0;$i -lt $excelReports.Length;$i++){    
    $savePath = (Get-Location).path + "\" + $outputFolder
    $savePath += "\" + $excelReports[$i].Name    
    $excelUrl = "$baseUrl/Reports/Pages/Resource.aspx?ItemPath="+$excelReports[$i].Path+"&Export=true&ViewMode=Detail"
   ...