Когда Ремус пытался понять, он обнаружит, что SQL установлен только локально ... в основном он использует имя локального хоста, потому что вы не дали ему имя, а под именем локального хоста кластер SQL не будет отвечать. поэтому вам нужно подключиться к виртуальному имени напрямую ... вы можете найти имя виртуального кластера в реестре ..
HKLM: \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Microsoft SQL Server \ Имена экземпляров \ SQL
если у вас установлен по умолчанию, вы увидите, что он будет что-то вроде (в зависимости от версии) MSSQL10_50.MSSQLSERVER
если вы подойдете к
HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Microsoft SQL Server
вы увидите, что есть узел, называемый этим именем экземпляра (в данном случае MSSQL10_50.MSSQLSERVER), в котором вы найдете Cluster, у которого есть ключ ClusterName ... со значением имени кластера. .
Редактировать: я только что провел тестирование в powershell ...
[System.Reflection.Assembly] :: LoadWithPartialName ("Microsoft.SqlServer.SMO") | Из-Null
microsoft.sqlserver.management.smo.smoapplication] :: enumavailablesqlservers ($ ложь)
(ps, отсутствует [выше, потому что stackoverflow странный)
я получил кучу вещей, которые были в некотором роде случайными ... состояние MSDN документации
Компьютер, на котором запущен экземпляр SQL Server, может не получать ответы на метод EnumAvailableSqlServers своевременно. В возвращенном списке могут отображаться не все доступные экземпляры SQL Server в сети. При вызове метода EnumAvailableSqlServers в последующих попытках в сети может появиться больше серверов.
http://msdn.microsoft.com/en-us/library/ms210334.aspx
Я должен сказать, что, вероятно, я бы не использовал этот метод, если вы просто не пытаетесь отобразить результаты для конечных пользователей ... я бы не использовал его для поиска имени кластера.