我想在一臺服務器上獲得所有.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