访问 Reporting Services WMI 提供程序

Reporting Services WMI 提供程序公开了两个 WMI 类,用于通过脚本管理本机模式报表服务器实例:

重要

从 SQL Server 2012 (11.x) 版本开始,只有本机模式报表服务器才支持 WMI 提供程序。 可以使用 SharePoint 管理中心页和 PowerShell 脚本管理 SharePoint 模式报表服务器。

命名空间 说明
MSReportServer_Instance root\Microsoft\SqlServer\ReportServer\RS_\v13 为客户端提供连接到已安装的报表服务器所需的基本信息。
MSReportServer_ConfigurationSetting root\Microsoft\SqlServer\ReportServer\RS_\v13\Admin 表示报表服务器实例的安装和运行时参数。 这些参数存储在报表服务器的配置文件中。

** 重要提示 **只有拥有管理权限才能访问此类。

以上每个类实例是为每个报表服务器实例创建的。 可以使用任何 Microsoft 或非 Microsoft 工具来访问报表服务器公开的 WMI 对象,包括 .NET Framework 自身公开的 WMI 编程接口。 本文介绍如何使用 PowerShell 命令 Get-WmiObject 访问和使用 WMI 类实例。

确定命名空间字符串中的实例名称

命名空间路径中针对 Reporting Services WMI 类的实例名称是您在安装命名 Reporting Services 实例时指定的实例名称的编码形式。 也就是说,对实例名称中的特殊字符进行编码。 例如,下划线 (_) 编码为 _5f,这样,实例名称 My_Instance 在 WMI 命名空间路径中就编码为 My_5fInstance

若要列出 WMI 命名空间路径中报表服务器实例的编码实例名称,请使用以下 PowerShell 命令:

PS C:\windows\system32> Get-WmiObject -namespace root\Microsoft\SqlServer\ReportServer  -class __Namespace -ComputerName hostname | select Name  

使用 PowerShell 访问 WMI 类

若要访问 WMI 类,请运行以下命令:

PS C:\windows\system32> Get-WmiObject -namespace <namespacename> -class <classname> -ComputerName <hostname>  

例如,若要访问主机 myrshost 的默认报表服务器实例上的 MSReportServer_ConfigurationSetting 类,请运行以下命令: 默认报表服务器实例必须安装在 myrshost 上,这样此命令才会成功。

PS C:\windows\system32> Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLSERER\v11\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost  

此命令语法会输出所有的类属性名称和值。 将返回 MSReportServer_ConfigurationSetting 类的所有实例,即使在默认报表服务器实例 (RS_MSSQLSERVER) 的命名空间中访问此类也是如此。 例如,myrshost 可能与默认报表服务器实例和名为 SHAREPOINT 的命名报表服务器实例一起安装。 此命令将返回两个 WMI 对象,并输出两个报表服务器实例的属性名和值。

若要在返回多个实例时返回特定类实例,请使用 -Filter 参数基于值唯一的属性(如 InstanceName)对结果进行筛选。 例如,若要仅返回默认报表服务器实例的 WMI 对象,请使用以下命令:

PS C:\windows\system32> Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLServer\v13\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost -filter "InstanceName='MSSQLSERVER'"  

查询可用的方法和属性

若要查看某个 Reporting Services WMI 类中有哪些可用的方法和属性,请将结果从 Get-WmiObject 管道传送到 Get-Member 命令。 例如:

PS C:\windows\system32> Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLServer\v13\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost | Get-Member  

使用 WMI 方法或属性

一旦您将 WMI 对象传送到 Reporting Services 类并且知道可用的方法和属性,就可以使用这些方法和属性。 例如,如果您在 SharePoint 集成模式中有一个名为 SHAREPOINT 的命名报表服务器实例,可以使用以下命令序列检索 SharePoint 管理中心站点的 URL:

PS C:\windows\system32> $rsconfig = Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_MSSQLServer\v13\Admin" -class MSReportServer_ConfigurationSetting -ComputerName myrshost -filter "InstanceName='SHAREPOINT'"  
PS C:\windows\system32> $rsconfig.GetAdminSiteUrl()