TCP Port Ping с помощью PowerShell

Любому администратору периодически приходится проверять доступность службы на  удаленном сервере путем проверки ответа от удаленного TCP  порта. Причем, все привыкли, что такую проверку быстрее всего выполнить с помощью команды telnet. Например, для проверки доступности SMTP службы ( по умолчанию отвечает на 25 TCP порту) на почтовом сервере достаточно выполнить команду telnet msk-msg01.winitpro.ru 25. Но начиная с Windows 7 клиент telnet выделен в отдельный компонент, который нужно устанавливать отдельно. Посмотрим, как выполнить аналогичное действие в PowerShell.

TCP Port Ping с помощью PowerShell

Готовый командлет для проверки сетевого соединения — Test-NetConnection – появился в PowerShell 4.0 (Windows 2012 R2, Windows 8.1и выше). Входит он в модуль NetTCPIP.
TCP Port Ping с помощью PowerShell.
TCP Port Ping с помощью PowerShell.

 

Совет. Проверить текущую установленную версию PowerShell можно командой $PSVersionTable.PSVersion
Значение 4 в столбце Major говорит о том, что на компьютере установлен PowerShell 4.0.
Проверим, открыт ли порт TCP 25 (SMTP протокол) на почтовом сервере с помощью Test-NetConnection:
Test-NetConnection -ComputerName msk-msg01 -Port 25
Примечание. С помощью командлета Test-NetConnection можно проверить только TCP соединение, для проверки доступности UDP порта он не применим.
В сокращенном виде аналогичная команда выглядит так:
TNC msk-mail1 -Port 25
TCP Port Ping с помощью PowerShell
TCP Port Ping с помощью PowerShell

Разберем результат команды:

ComputerName           : msk-msg01
RemoteAddress          : 10.10.1.7
RemotePort             : 25
InterfaceAlias         : CORP
SourceAddress          : 10.10.1.70
PingSucceeded          : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : True
Как мы видим, указанный сервер доступен по ICMP (PingSucceeded = True) и 25 TCP порт также отвечает (RemotePort=25, TcpTestSucceeded= True)
Примечание.  В некоторых случаях может оказаться, что PingSucceeded=False, а TcpTestSucceeded= True. Скорее всего означает, что на удаленном сервере запрещен ICMP Ping.
Если нужна только информация по доступности порта, в более лаконичном виде проверка может быть выполнена так:
TNC msk-mail1 -Port 25 -InformationLevel Quiet
TCP Port Ping с помощью PowerShell
TCP Port Ping с помощью PowerShell
Следующая команда позволить проверить доступность определенно порта на множестве серверов, список которых хранится в текстовом файле servers.txt. Нас интересуют сервера, где искомая служба не отвечает:
Get-Content c:Distrservers.txt |  where { -NOT (Test-Netconnection $_ -Port 25  -InformationLevel Quiet)}| Format-Table -AutoSize
Совет. В предыдущих версиях PowerShell проверить доступность TCP порта можно так:
(New-Object System.Net.Sockets.TcpClient).Connect(‘msk-msg01’, 25)
TCP Port Ping с помощью PowerShell
TCP Port Ping с помощью PowerShell

Ну вот и все, рекомендую ознакомиться с другими статьями PowerShell


Источник: winitpro

Понравилась статья?

Помогите Setiwik.ru создавать больше глубоких обзоров и новостей. Один клик и ваш вклад помогает держать серверы включёнными и авторов мотивированными!

Спасибо, что вы с нами!

Nazario

Я Назар. Уже больше десяти лет я работаю с Linux и Windows системами каждый день. Это моя основная профессия и большая часть жизни.
Всё, что ты читаешь на Setiwik.ru, начинается с официальной документации, мануалов и технических спецификаций. Я их изучаю очень внимательно. Но ценность статей появляется именно тогда, когда я беру эту базу и пропускаю через десятки реальных ситуаций: ночные аварии, странные баги, которые не гуглятся с первого раза, выстраданные конфиги и проверенные обходные пути.
Я не обещаю истину в последней инстанции. Но если мой опыт поможет тебе сэкономить хотя бы пару часов нервов и перезагрузок, значит всё это было не зря. Здесь только практика: от тонкой настройки серверов до самых неожиданных ситуаций, которые официальные руководства обычно обходят стороной.
Setiwik.ru это место, где IT становится понятнее и спокойнее. Заходи почаще. Будем разбираться вместе.

Практические инструкции по Windows и Linux
Добавить комментарий