我想在一台服务器上获得所有.rdl文件的副本。 我可以手动执行一次下载的报告,但这非常耗时,尤其是这台服务器有大约1500份报告。下载所有SSRS报告
是否有任何方式或任何工具,允许我下载所有的.rdl文件,并采取它们的副本?
我想在一台服务器上获得所有.rdl文件的副本。 我可以手动执行一次下载的报告,但这非常耗时,尤其是这台服务器有大约1500份报告。下载所有SSRS报告
是否有任何方式或任何工具,允许我下载所有的.rdl文件,并采取它们的副本?
这是基于SQL2016/SSRS2016,但我认为它应该在2012年
SELECT 'http://mySQLServerName/reports/api/v1.0/catalogitems(' + cast(itemid as varchar(256))+ ')/Content/$value' AS url
FROM ReportServer.dbo.Catalog
工作这会给你的URL列表,每个报告。
如果上述内容在SSRS 2012中不起作用,那么请转至报告管理器并执行操作,就好像您要从此处下载文件一样。检查下载按钮上的网址,您可能会看到一个URL,其中嵌入了项目ID。只需调整上面的代码以匹配那个url结构。
你做什么之后,这取决于你。 个人而言,我会使用Chrome商店here中提供的名为“Tab Save”的Chrome扩展程序。你可以简单地复制和粘贴在上面创建的所有URL的进去,打的下载按钮...
如果你只是需要这个备份的目的或类似的东西,这可能是有用的:Where does a published RDL file sit?
相关查询从该线程是:
select convert(varchar(max), convert(varbinary(max), content))
from catalog
where content is not null
原来答案是使用2005年,我已经用它在2016年,所以我想它应该在2008年和2012年
工作时,我不得不用这个,我在查询的路径中添加了y,以便我知道哪个报告是哪个。
还有就是要做到这一点使用PowerShell的完整&简单的方法。
此代码将导出与报表服务器完全相同结构的所有报表内容。看看Github wiki其他选项&命令
#------------------------------------------------------
#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