Реестр служб отчетов Microsoft SQL Server 2017
Изменились ли пути реестра для служб отчетов Microsoft SQL Server 2017?
Прежде чем мы смогли найти имя экземпляра здесь:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\RS\MSSQLSERVER
Но сейчас в 2017 году MSSQLSERVER отсутствует и вместо него есть SSRS.
Исходя из этой статьи, он все еще должен находиться под MSSQLSERVER, но это не так. Мы пропустили некоторые установки установки, которые вызвали это или это стандартное поведение по умолчанию сейчас?
1 ответ
Поскольку службы Reporting Services теперь являются отдельной установкой, они устанавливаются как именованные экземпляры. SSRS
, Это изменение по сравнению с предыдущими версиями, где службы Reporting Services были частью установки SQL Server.
Я бы предложил использовать запросы WMI для получения необходимой информации (пример ниже с использованием PowerShell). Обратите внимание, что версия 14 относится к выпуску 2017 года.
$wmiName = (Get-WmiObject –namespace root\Microsoft\SqlServer\ReportServer –class __Namespace).Name
$rsConfig = Get-WmiObject –namespace "root\Microsoft\SqlServer\ReportServer\$wmiName\v14\Admin" -class MSReportServer_ConfigurationSetting
Я знаю, что это сообщение старое, но у меня была такая же проблема в моей компании, чтобы найти информацию от RS 2017, и я не нашел места, где сообщалось бы о правильном месте, поэтому я хотел опубликовать здесь!
Мы с моим другом (Пауло Энрике Родригес Оринд) нашли место, где вы можете получить всю информацию о RS 2017, и я надеюсь, что RS 2019 будет таким же.
1) По PowerShell + WMI:
Get-WmiObject -namespace "root\Microsoft\SqlServer\ReportServer\RS_SSRS\V14" -class MSReportServer_Instance | Select-Object -Property EditionName, Version, InstanceName
2) По C# + WMI (Вам нужно будет импортировать System.Management.dll)
using System;
using System.Management;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
ConnectionOptions options = new ConnectionOptions();
options.Impersonation = System.Management.ImpersonationLevel.Impersonate;
ManagementScope scope = new ManagementScope("Root\\Microsoft\\SqlServer\\ReportServer\\RS_SSRS\\V14", options);
scope.Connect();
//Query system for Operating System information
ObjectQuery query = new ObjectQuery("SELECT * FROM MSReportServer_Instance");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementObject m in queryCollection)
{
// Display the remote computer information
Console.WriteLine("EditionName : {0}", m["EditionName"]);
Console.WriteLine("EditionID : {0}", m["EditionID"]);
Console.WriteLine("InstanceID : {0}", m["InstanceID"]);
Console.WriteLine("InstanceName : {0}", m["InstanceName"]);
Console.WriteLine("Version : {0}", m["Version"]);
}
Console.ReadKey();
}
}
}
3) WMI:
Открытие WMI: пространство имен: корневой >> Microsoft >> SqlServer >> ReportServer >> RS_SSRS >> V14 Класс: MSReportServer_Instance
Я надеюсь, что помог с чем-то