获取可靠安装的服务器实例列表

时间:2013-06-27 07:58:44

标签: sql-server vb.net visual-studio smo

我正在使用以下代码来获取已安装的服务器实例列表。

Dim sqldatasourceenumerator1 As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
    datatable1 = sqldatasourceenumerator1.GetDataSources()

有时候这段代码运行正常,但大部分时间都会丢失,系统会变得无法响应。

有人可以告诉我一些在所有情况下都可靠的替代代码吗? 感谢

1 个答案:

答案 0 :(得分:1)

您可以检查注册表,例如,您可以尝试阅读此注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL

64位操作系统上的32位实例应列在:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\Instance Names\SQL

这是一个c#代码段,用于在64位Windows上获取64位实例的此信息:

RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey key = baseKey.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL");

foreach (string s in key.GetValueNames())
{
   ...
}

key.Close();
baseKey.Close();