Сегодняшняя командлета дня – это PowerShell Test-Connection. Test-Connection
– это командлет, который, неудивительно, тестирует ваше сетевое соединение. Подумайте о Test-Connection
как о реализации PowerShell популярной утилиты ping. Несмотря на то, что у них обоих есть общий ICMP, вы увидите, что эти два метода немного отличаются под капотом.
Использовать эту командлету просто. В ее самой базовой форме просто укажите параметр ComputerName
, и она отправит четыре запроса ICMP на целевой хост.
Этот вывод выглядит похожим на ping.exe, и, на первый взгляд, это так, но Powershell test-connection отправляет запрос ICMP немного иначе. В отличие от ping.exe, Test-Connection
использует локальный класс WMI вашего компьютера Win32_PingStatus для отправки запроса ICMP. Использование локального хранилища WMI означает, что вам лучше быть уверенным в том, что ваше локальное хранилище WMI работает исправно, иначе Test-Connection
не будет работать.
Объектный вывод PowerShell Test-Connection
Также, как и с преимуществом PowerShell, эта командлета не просто возвращает то, что сразу же появляется в консоли. Мы видим богатые объекты, из которых мы можем получить больше информации.
Если я присвою вывод переменной, а затем проверю свойства, вы увидите, что я собрал гораздо больше полезной информации.
Если вы тестируете внутренние узлы, Test-Connection
будет использовать DCOM для аутентификации на удаленных узлах. По умолчанию он будет использовать аутентификацию DCOM на уровне пакета, но тип аутентификации всегда можно изменить с помощью параметра DcomAuthentication
.
Использование фоновых заданий
Этот cmdlet также может выполняться как фоновая задача. Фоновые задания пригодятся, если у вас много удаленных компьютеров для проверки, и вместо бесконечного ожидания тех, которые в конечном итоге завершатся по тайм-ауту, просто отправьте их в фоновую задачу.
Согласно справке PowerShell для Powershell test-connections, там говорится, что необходимо включить удаленное выполнение PowerShell как на локальном, так и на удаленном компьютере, но это не так. Как видите ниже, я тестирую google.com, и команда все равно отлично работает.


Простота во всем
Наконец, если вам просто нужен бинарный ответ “да” или “нет” на вопрос о том, отвечает ли компьютер или нет, вы всегда можете использовать параметр Quiet
. Общая строка, которую я всегда использую, чтобы быстро узнать, включен ли сервер или нет, – использовать Quiet
и Count
равный 1, чтобы заставить Test-Connection
отправить один запрос ICMP.
Вот и всё на сегодняшний день по нашему cmdlet! Мы рассмотрели большинство возможностей командлета Powershell test-connection, но, как всегда, обратитесь к справочным материалам PowerShell или загляните в документацию Microsoft для полного ознакомления.
Source:
https://adamtheautomator.com/powershell-test-connection/