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"
...