2017-02-23 30 views
1

我需要获取SQL Server实例名称列表以及我的网络上的版本和版本。我用以下代码尝试过使用ManagementObject从网络中的所有SQL Server实例

string NamespacePath = "\\\\.\\ROOT\\Microsoft\\SqlServer\\ComputerManagement12"; 
string ClassName = "SqlServiceAdvancedProperty"; 

// Create ManagementClass 
ManagementClass oClass = new ManagementClass(NamespacePath + ":" + ClassName); 
string s = string.Empty; 
string instancename = string.Empty; 

// Get all instances of the class and enumerate them 
foreach (ManagementObject oObject in oClass.GetInstances()) 
{   
    instancename = instancename + Convert.ToString(oObject["ServiceName"]); 
} 

我可以使用上述代码从网络获取SQL Server的所有实例,其版本和版本吗?

任何人都可以帮助我获得SQL Server实例和版本列表吗?

+0

输出SQLCMD -L(或osql -L)的结果列出本地网络中的所有服务器。如果您已登录到每台服务器,在列表中找到/您的域名登录名列出的每台服务器都是有效的,则可以在每台服务器上执行query select @@ version。如您的示例,MMC呼叫也需要权利 – vitalygolub

+0

我们没有sqlserver的凭据。我们只需要获取sqlserver实例名称,版本和版本的列表。任何人都知道我们如何使用WMI和c#代码来获取信息? –

回答

1

看到这篇文章:http://msdn.microsoft.com/en-us/library/dd981032.aspx

只提的是本文中的代码示例使用SQL Server 2008中的WMI提供程序来检测所有SQL Server 2008和SQL Server 2005个实例。对于检测到的每个实例,代码将列出结果中每个实例的版本和版本。 您必须检查SQL Server 2012的ComputerManagement11,SQL 2014的ComputerManagement12和SQL 2016的ComputerManagement13。

相关问题