internal static void ExecuteDirect(EngineCommandContext ctx, bool listRemote) { string[] remoteInstances; if (listRemote) { Console.WriteLine("Gathering list of remote servers..."); try { remoteInstances = SqlServerEnumerator.GetRemoteInstances(); } catch { Console.WriteLine("Failed to retrieve the remote servers."); return; } } else { try { remoteInstances = SqlServerEnumerator.GetLocalInstances(); } catch { Console.WriteLine("Failed to retrieve local instances."); return; } } Console.WriteLine(""); if ((remoteInstances != null) && (remoteInstances.Length > 0)) { foreach (string str in remoteInstances) { Console.WriteLine(str); } } else { Console.WriteLine("No SQL Server instance found."); } }
public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { /* * if (_LocalServers == null) * { * //Return only local instances. Full list of instances in network is available in full SqlConnectionStringBuilder but it is slow. * var serverNames = new List<string>(); * var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"); * if (key != null) * { * try * { * var names = key.GetValueNames(); * foreach (var name in names) * { * //Default instance - MSSQLSERVER * if (string.Compare(name, "MSSQLSERVER", true) == 0) * serverNames.Add("."); * else * serverNames.Add($@".\{name}"); * } * } * finally * { * key.Close(); * } * } * * _LocalServers = new StandardValuesCollection(serverNames); * } */ if (_LocalServers == null) { var servers = SqlServerEnumerator.ListSqlServers(); _LocalServers = new StandardValuesCollection(servers); } return(_LocalServers); }