web-dev-qa-db-fra.com

Téléchargez tous les rapports SSRS

Je souhaite obtenir une copie de tous les fichiers .rdl sur un serveur ..__ Je peux télécharger le rapport manuellement, un rapport à la fois, mais cela prend beaucoup de temps, surtout que ce serveur contient environ 1 500 rapports.

Y at-il un moyen ou un outil qui me permet de télécharger tous les fichiers .rdl et d’en prendre une copie?

6
asmgx

Il existe un moyen simple et complet de faire cela avec PowerShell.

Ce code exportera TOUT le contenu du rapport dans la même structure que le serveur de rapports. Consultez le wiki Github pour connaître les autres options et commandes. 

#------------------------------------------------------
#Prerequisites
#Install-Module -Name ReportingServicesTools
#------------------------------------------------------

#Lets get security on all folders in a single instance
#------------------------------------------------------
#Declare SSRS URI
$sourceRsUri = 'http://ReportServerURL/ReportServer/ReportService2010.asmx?wsdl'

#Declare Proxy so we dont need to connect with every command
$proxy = New-RsWebServiceProxy -ReportServerUri $sourceRsUri

#Output ALL Catalog items to file system
Out-RsFolderContent -Proxy $proxy -RsFolder / -Destination 'C:\SSRS_Out' -Recurse
19
CPorteous

Si vous en avez juste besoin à des fins de sauvegarde ou quelque chose de similaire, cela pourrait être utile: Où se trouve un fichier RDL publié?

La requête pertinente de ce fil est:

select convert(varchar(max), convert(varbinary(max), content))
from catalog
where content is not null

La réponse originale utilisait 2005, et je l'ai utilisée pour 2016, alors j'imagine que cela devrait fonctionner pour 2008 et 2012.

Lorsque j'ai dû utiliser cela, j'ai ajouté le chemin d'accès à la requête afin de savoir quel rapport était lequel.

1
C Black

Ceci est basé sur SQL2016/SSRS2016 mais je pense que cela devrait fonctionner pour 2012.

SELECT 'http://mySQLServerName/reports/api/v1.0/catalogitems(' + cast(itemid as varchar(256))+ ')/Content/$value' AS url
    FROM ReportServer.dbo.Catalog

Cela vous donnera une liste d'URL, une pour chaque rapport.

Si ce qui précède n'a pas fonctionné dans SSRS 2012, accédez au gestionnaire de rapports et procédez comme si vous alliez télécharger le fichier à partir de là. Vérifiez l'URL sur le bouton de téléchargement et vous verrez probablement une URL avec un identifiant d'élément intégré dans celui-ci. Il suffit d’ajuster le code ci-dessus pour correspondre à cette structure d’URL.

Ce que vous faites avec ensuite, cela dépend de vous. Personnellement, j’utiliserais l’extension Chrome appelée "Tab Save" disponible dans le magasin Chrome ici . Vous pouvez simplement copier et coller toutes les URL créées ci-dessus et cliquer sur le bouton de téléchargement ...

1
Alan Schofield