WMI-запрос экземпляров службы отчетов возвращает все экземпляры независимо от пути к родительскому серверу sql

У нас есть некоторый код для идентификации экземпляров SQL Server и связанных с ними экземпляров Reporting Server, которые возвращают неожиданные результаты.

Машина имеет два экземпляра SQL Express (2008) - (local)/SQLEXPRESSи (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, коллекция mocвсегда содержит два значения:

  • moc[0] ["InstanceName"] = "SQLEXPRESS"
  • moc[1] ["InstanceName"] = "EXPRESS_BOB"

Каким образом запрос по указанному пути WMI экземпляров SQL Server возвращает экземпляры сервера отчетов, (которые, как я ожидаю, )будут жить по другому пути?

Это правильный путь для запроса?

5
задан Yasser 7 August 2012 в 05:53
поделиться