Powershell

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

  • July 8, 2009

我正在嘗試使用 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
  • 作業系統 = Windows Server 2008 R2 RC (x64)
  • SQL = SQL 2008 SP1 (x64)
  • Reporting Services 已安裝並執行 - 執行多個報告)
  • 一切都在同一個盒子上執行(腳本、SQL、SSRS)
  • SSRS 的 WMI 資訊連結:http: //msdn.microsoft.com/en-us/library/ms152858.aspx
  • 我已經嘗試(猜測)命名空間的不同變體,但沒有任何效果

答案 (2009-06-22)

下面的程式碼找到實例並將其放入*$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”

該類是否被列出?

快捷鍵:PS>get-wmiobject -list -namespace “root\Microsoft\SqlServer”|where{$_.name -eq “MSReportServer_Instance”}

我有一個執行 Server 2008 和 SQL 2008 的 VM,明天可以試試。

如果不確定命名空間: PS> Get-WmiObject -Namespace “root” -Class “__NAMESPACE” | 格式列表名稱

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

引用自:https://serverfault.com/questions/28857