PowerShell脚本可以编写SQL Server Reporting Services RDL文件吗?

Reg*_*ser 6 powershell service reporting reporting-services

是否可以使用PowerShell编写SQL Server 2008中的SQL Server Reporting Services rdl文件?如果是这样,有人可以提供这样做的代码示例吗?这将是使用第三方工具编写由商业智能部门之外的业务用户创建的RDL文件的有用替代品.

澄清术语"脚本"

通过"脚本输出",我的意思是我想为服务器上的每个报告自动生成基础RDL文件.例如,在BIDS中编写报表时,您将生成RDL文件.将文件部署到服务器时,文件以某种方式导入SQL Server ReportServer数据库,它不再是单独的物理RDL文件.我想以RDL文件格式从服务器中提取所有报告.

我使用RSScripter工具将报告提取为RDL文件,因此我知道可以使用PowerShell以外的工具.我特别想知道是否可以使用PowerShell来实现它,如果是这样,请获取代码示例来执行此操作.

澄清为什么我想要生成RDL版本的报告

为什么将报告"编写"到RDL文件很重要?我希望每晚一次将RDL文件签入我的源代码管理系统,以跟踪我的商业智能部门以外的用户创建的所有报告.自从我们在BIDS中开发报告以来,我已经跟踪了我部门生成的所有报告,但我无法跟踪在线报告生成器工具中构建的报告的版本历史.

澄清为什么以权力而不是为了

  1. 好奇心.我有一个问题,我知道可以通过两种方法之一(API或RSSCripter)解决,我想知道它是否可以通过第三种方法解决.

  2. 有机会通过PowerShell扩展我的问题解决工具包.使用PowerShell解决此问题可能为学习如何使用PowerShell解决我尚未尝试解决的其他问题奠定了基础.

  3. PowerShell对我的团队和我来说更容易理解.通常,我和我的团队成员比.NET代码更容易理解PowerShell代码.虽然我知道这个问题可以通过一些使用API​​的.NET代码解决(毕竟RSScripter的工作方式),但我觉得编写和维护PowerShell脚本会更容易.我也意识到PowerShell脚本可能会使用.NET代码,但我希望PowerShell已经能够以某种方式处理对象等报告,因此我不必使用Reporting Services API来提取文件.

  4. RSScripter尚不支持2008.在过去,我使用RSScript编写报告脚本.不幸的是,它似乎还没有支持2008年.这意味着我现在必须针对API编写代码,因为这是我呈现的唯一方式,知道如何以自动无人值守的方式提取文件.

小智 5

有点晚了,但是你去吧

此 PowerShell 脚本: 1. 连接到您的报表服务器 2. 创建与报表服务器中相同的文件夹结构 3. 将所有 SSRS 报表定义 (RDL) 文件下载到各自的文件夹中

https://sqlbelle.wordpress.com/2011/03/28/how-to-download-all-your-ssrs-report-definitions-rdl-files-using-powershell/