如何使用Powershell 2 Get-WmiObject在Windows Server 2008 R2上查找SQL Server Reporting Services(SQL2008)的实例

我试图使用PowerShell 2“Get-WmiObject”命令来使用此命令查找报告服务实例

get-wmiobject -class "MSReportServer_Instance" -namespace "root\Microsoft\SqlServer\ReportServer" 

错误,我回来

 Get-WmiObject : Invalid class At line:1 char:14 + get-wmiobject <<<< -class "MSReportServer_Instance" -namespace "root\Microsoft\SqlServer" + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand 

笔记

  • 这是Powershell 2
  • OS = Windows Server 2008 R2 RC(x64)
  • SQL = SQL 2008 SP1(x64)
  • 报告服务已安装并运行 – 有多个报告正在运行)
  • 一切都在同一个盒子上运行(脚本,SQL,SSRS)
  • 链接到SSRS的WMI信息: http : //msdn.microsoft.com/en-us/library/ms152858.aspx
  • 我试过(猜)命名空间上的不同变化,但没有任何工作

答案(2009-06-22)

下面的代码find实例并将其放置到$ rs_instance中

 $ns = Get-WmiObject -class "__NAMESPACE" -namespace "root\Microsoft\SqlServer\ReportServer" $rs_instance_name = "root\Microsoft\SqlServer\ReportServer\" + $ns.Name + "\v10" $rs_instance = Get-WmiObject -class "MSReportServer_Instance" -namespace $rs_instance_name 

使用WmiExplorer.ps1脚本我可以在__NAMESPACE中看到实例名称,这个查询返回我的实例名称:

 gwmi -class "__NAMESPACE" -namespace "root\Microsoft\SqlServer\ReportServer" 

要获得MSReporterServer_Instance,您必须在此示例中提供实例名称,我的实例名称为RS_SQL2K8:

 gwmi -class "MSReportServer_Instance" -namespace "root\Microsoft\SqlServer\ReportServer\RS_SQL2K8\v10" 

首先,这是一个有效的课堂?

试试这个:PS> get-wmiobject -list -namespace“root \ Microsoft \ SqlServer”

这个class是否上市?

快捷键:PS> get-wmiobject -list -namespace“root \ Microsoft \ SqlServer”|其中{$ _。name -eq“MSReportServer_Instance”}

我有一个虚拟机运行SQL Server 2008的SQL 2008,明天可以试试这个。

如果您不确定名称空间:PS> Get-WmiObject – 命名空间“root”-Class“__NAMESPACE”| 格式 – 列表名称

(来自: http : //www.eggheadcafe.com/conversation.aspx?messageid=31024041&threadid=31024027 )

如果您要做的事情需要WMI,这可能会失去重点,但是SQL Server 2008附带了托pipe扩展,这意味着大多数自动化任务不再需要通过WMI来实现。

例如,在安装了客户端扩展的机器上,select在powershell中打开的数据库,右键单击上下文菜单命令, 或者在任何powershell会话中加载扩展http://blogs.msdn.com/mwories/archive/2008/06/ 14 / SQL2008_5F00_Powershell.aspx ),您可以执行以下操作:

 PS > cd SQLSERVER PS > Set-Location \sql\MyServer\ReportServer 

现在,您可以像pipe理PowerShell中的locla文件系统一样pipe理数据库对象(例如,尝试运行dir。| Get-Member以查看一些要与之交互的属性)。