[英]WMI query of reporting service instances returns all instances regardless of parent sql server path
我們有一些代碼來識別SQL Server實例及其關聯的Reporting Server實例,這些實例會返回意外結果。
一台機器有兩個SQL Express (2008) - (local)/SQLEXPRESS
和(local)/EXPRESS_BOB
- 每個(local)/EXPRESS_BOB
都有自己的報告服務器。
使用WMI,我們識別SQL Server實例,並按預期工作。 對於每個實例,我們然后查詢RS實例,如下所示:
public void QueryServers(string wmiPath)
{
using (
var searcher = new ManagementObjectSearcher(
wmiPath,
"Select * from MSReportServer_ConfigurationSetting"))
{
ManagementObjectCollection moc = searcher.Get();
//
// Process objects in moc
//
}
}
這是針對wmiPath的兩個值運行的(注意 - 需要以管理員身份運行):
- wmiPath =“root \\ Microsoft \\ SqlServer \\ ReportServer \\ RS_SQLEXPRESS \\ v10 \\ Admin”
- wmiPath =“root \\ Microsoft \\ SqlServer \\ ReportServer \\ RS_EXPRESS_5fBOB \\ v10 \\ Admin”
無論wmiPath
的值wmiPath
, moc
集合始終包含兩個值:
- moc [0] [“InstanceName”] =“SQLEXPRESS”
- moc [1] [“InstanceName”] =“EXPRESS_BOB”
如何在指定的SQL Server實例的WMI路徑下的查詢返回(我希望)生活在不同路徑下的Report Server實例?
這是查詢的正確途徑嗎?
它似乎是設計的(見http://msdn.microsoft.com/en-us/library/ms152836.aspx )
在查詢中添加"Where InstanceName='<instance name>'"
可能有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.