Служба браузера SQL Server прослушивает порт UDP 1434, а не TCP 1433. Ниже приведен пример сценария Powershell, который отправляет запрос UDP и отображает возвращенную дейтаграмму.
# query SQL Server browser to test connectivity and get datagram
function QuerySqlBrowser($HostName)
{
try
{
$udpClient = new-object Net.Sockets.UdpClient($HostName, 1434);
$browserQueryMessage = new-object byte[] 2;
$browserQueryMessage[0] = 2;
$remoteEndPoint = new-object System.Net.IPEndPoint([System.Net.IPAddress]::Broadcast, 0);
$bytesSent = $udpClient.Send($browserQueryMessage, 2);
$udpClient.Client.ReceiveTimeout = 10000;
$browserResponse = $udpClient.Receive([ref]$remoteEndPoint);
$payloadLength = $browserResponse.Length - 3;
$browserResponseString = [System.Text.ASCIIEncoding]::ASCII.GetString($browserResponse, 3, $payloadLength);
Write-Host $browserResponseString;
}
catch [Exception]
{
Write-Host $_.Exception.Message;
}
}
QuerySqlBrowser "YourServer";
Отдельно можно использовать TELNET для проверки соединения TCP на порт экземпляра SQL Server прослушивает (по умолчанию 1433) или с этим Powershell однострочника:
1433 | % { echo ((new-object Net.Sockets.TcpClient).Connect("YourServer",$_)) "server listening on TCP port $_" }