Test-Connection (Microsoft.PowerShell.Management)
Test-Connection
- Модуль:
- Microsoft.PowerShell.Management
Отправляет пакеты эхо-запросов ICMP или ping-запросы на один или несколько компьютеров.
Синтаксис
Test-Connection
[-TargetName] <string[]>
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Count <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-Count <int>]
[-Delay <int>]
[-Repeat]
[-Quiet]
[-TimeoutSeconds <int>]
[-Detailed]
[<CommonParameters>]Описание
Командлет Test-Connection отправляет пакеты эхо-запросов протокола управления сообщениями Интернета (ICMP) или команды ping на один или несколько удаленных компьютеров и возвращает ответы эхо-ответа. Этот командлет можно использовать, чтобы определить, можно ли связаться с конкретным компьютером через IP-сеть.
Вы можете использовать параметры Test-Connection, чтобы указать как отправляющий, так и получающий компьютеры, запустить команду в качестве фонового задания, установить время ожидания и количество пингов, а также настроить соединение. и аутентификация.
В отличие от знакомой команды ping, Test-Connection возвращает объект TestConnectionCommand+PingStatus, который можно изучить в PowerShell. Параметр Quiet возвращает значение Boolean в объекте System.Boolean для каждого тестируемого соединения. Если тестируется несколько соединений, возвращается массив значений Boolean.
Примеры
Пример 1. Отправка эхо-запросов на удаленный компьютер
В этом примере пакеты эхо-запроса отправляются с локального компьютера на компьютер Server01.
Test-Connection -TargetName Server01 -IPv4
Destination: Server01
Ping Source Address Latency BufferSize Status
(ms) (B)
---- ------ ------- ------- ---------- ------
1 ADMIN1 10.59.137.44 24 32 Success
2 ADMIN1 10.59.137.44 39 32 Success
3 ADMIN1 * * * TimedOut
4 ADMIN1 10.59.137.44 28 32 SuccessTest-Connection использует параметр TargetName для указания компьютера Server01. Параметр IPv4 указывает протокол теста.
В выходной поток отправляется серия объектов TestConnectionCommand+PingStatus, по одному объекту на каждый ответ ping от целевого компьютера.
Пример 2. Отправка эхо-запросов на несколько компьютеров.
В этом примере пинг-запросы с локального компьютера отправляются на несколько удаленных компьютеров.
Test-Connection -TargetName Server01, Server02, Server12Пример 3. Использование параметров для настройки тестовой команды
В этом примере используются параметры Test-Connection для настройки команды. Локальный компьютер отправляет пинг-тест на удаленный компьютер.
Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256Test-Connection использует параметр TargetName для указания Server01. Параметр Count указывает, что на компьютер Server01 отправляются три запроса ping с задержкой в 2 секунды.
Вы можете использовать эти параметры, если ожидается, что ответ на запрос ping займет больше времени, чем обычно, либо из-за увеличенного количества прыжков, либо из-за состояния сети с высоким трафиком.
Пример 4. Запуск теста в качестве фонового задания.
В этом примере показано, как запустить команду Test-Connection в качестве фонового задания PowerShell.
$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -WaitКоманда Start-Job использует командлет Test-Connection для проверки связи многих компьютеров на предприятии. Значением параметра TargetName является команда Get-Content, которая считывает список имен компьютеров из файла Servers.txt. Команда использует командлет Start-Job для запуска команды в качестве фонового задания и сохраняет задание в переменной $job.
Команда Receive-Job получает указание -Wait, пока задание не будет завершено, а затем получает результаты и сохраняет их в переменной $Results. .
Пример 5. Создание сеанса только в том случае, если проверка соединения прошла успешно.
В этом примере сеанс на компьютере Server01 создается только в том случае, если хотя бы один из ping-запросов, отправленных на компьютер, успешен.
if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }Командлет Test-Connection проверяет связь с компьютером Server01 с предоставленным параметром Quiet. Результирующим значением будет $True, если любой из четырех ping-запросов окажется успешным. Если ни один из пингов не увенчался успехом, значением будет $False.
Если команда Test-Connection возвращает значение $True, команда использует командлет New-PSSession для создания PSSession.
Пример 6. Использование параметра Traceroute
Параметр Traceroute, представленный в PowerShell 6.0, сопоставляет маршрут между локальным компьютером и удаленным пунктом назначения, который вы указываете с помощью параметра TargetName.
Test-Connection -TargetName www.google.com -Traceroute
Target: google.com
Hop Hostname Ping Latency Status Source TargetAddress
(ms)
--- -------- ---- ------- ------ ------ -------------
1 172.20.0.1 1 4 Success Lira 172.217.9.174
1 172.20.0.1 2 3 Success Lira 172.217.9.174
1 172.20.0.1 3 2 Success Lira 172.217.9.174
2 12.108.153.193 1 3 Success Lira 172.217.9.174
2 12.108.153.193 2 3 Success Lira 172.217.9.174
2 12.108.153.193 3 2 Success Lira 172.217.9.174
3 12.244.85.177 1 11 Success Lira 172.217.9.174
3 12.244.85.177 2 12 Success Lira 172.217.9.174
3 12.244.85.177 3 12 Success Lira 172.217.9.174
4 * 1 14 DestinationNetw… Lira 172.217.9.174
4 * 2 * TimedOut Lira 172.217.9.174
4 * 3 20 DestinationNetw… Lira 172.217.9.174
5 * 1 * TimedOut Lira 172.217.9.174
5 * 2 15 DestinationNetw… Lira 172.217.9.174
5 * 3 * TimedOut Lira 172.217.9.174
6 * 1 18 DestinationNetw… Lira 172.217.9.174
6 * 2 * TimedOut Lira 172.217.9.174
6 * 3 16 DestinationNetw… Lira 172.217.9.174
7 * 1 * TimedOut Lira 172.217.9.174
7 * 2 * TimedOut Lira 172.217.9.174
7 * 3 * TimedOut Lira 172.217.9.174
8 * 1 * TimedOut Lira 172.217.9.174
8 * 2 * TimedOut Lira 172.217.9.174
8 * 3 * TimedOut Lira 172.217.9.174
9 * 1 * TimedOut Lira 172.217.9.174
9 * 2 * TimedOut Lira 172.217.9.174
9 * 3 * TimedOut Lira 172.217.9.174
10 * 1 * TimedOut Lira 172.217.9.174
10 * 2 * TimedOut Lira 172.217.9.174
10 * 3 * TimedOut Lira 172.217.9.174
11 172.217.9.174 1 23 Success Lira 172.217.9.174
11 172.217.9.174 2 21 Success Lira 172.217.9.174
11 172.217.9.174 3 22 Success Lira 172.217.9.174Команда Test-Connection вызывается с параметром Traceroute. Результаты, представляющие собой объекты [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus], выводятся в выходной поток Success.
Пример 7. Получение подробных результатов теста TCP-соединения.
При использовании параметра Detailed этот командлет возвращает подробную информацию о состоянии попыток TCP-подключения.
Test-Connection bing.com -TCPPort 443 -Detailed -Count 4
Target: bing.com
Id Source Address Port Latency(ms) Connected Status
-- ------ ------- ---- ----------- --------- ------
1 circumflex 2620:1ec:c11::200 443 12 True Success
2 circumflex 2620:1ec:c11::200 443 14 True Success
3 circumflex 2620:1ec:c11::200 443 17 True Success
4 circumflex 2620:1ec:c11::200 443 17 True SuccessПараметры
-BufferSize
Указывает размер в байтах буфера, отправленного с помощью этой команды. Значение по умолчанию — 32.
- Тип :
Int32
- Псевдонимы:
Size, Bytes, BS
- Позиция:
Именованный
- Значение по умолчанию:
32
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Count
Указывает количество отправляемых эхо-запросов. Значение по умолчанию — 4.
- Тип :
Int32
- Позиция:
Именованный
- Значение по умолчанию:
4
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Delay
Указывает интервал между пингами в секундах.
- Тип :
Int32
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Detailed
При использовании параметра Detailed этот командлет возвращает подробную информацию о состоянии попыток TCP-подключения.
Этот параметр был добавлен в PowerShell 7.4.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-DontFragment
Этот параметр устанавливает флаг Не фрагментировать в заголовке IP. Вы можете использовать этот параметр вместе с параметром BufferSize, чтобы проверить размер Path MTU. Дополнительные сведения о Path MTU см. в статье Path MTU Discovery в Википедии.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-IPv4
Заставляет командлет использовать для теста протокол IPv4.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-IPv6
Заставляет командлет использовать для теста протокол IPv6.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-MaxHops
Устанавливает максимальное количество переходов, на которые может быть отправлено сообщение запроса ICMP. Значение по умолчанию контролируется операционной системой. Значение по умолчанию для Windows 10 и более поздних версий — 128 прыжков.
- Тип :
Int32
- Псевдонимы:
Ttl, TimeToLive, Hops
- Позиция:
Именованный
- Значение по умолчанию:
128
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-MtuSize
Этот параметр используется для определения размера Path MTU. Командлет возвращает объект PingReply#MTUSize, содержащий размер MTU пути к цели. Дополнительные сведения о Path MTU см. в статье Path MTU Discovery в Википедии.
- Тип :
SwitchParameter
- Псевдонимы:
MtuSizeDetect
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Ping
Заставляет командлет выполнять проверку связи. Это режим по умолчанию для командлета Test-Connection.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
True
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Quiet
Параметр Quiet возвращает логическое значение. Использование этого параметра подавляет все ошибки.
Каждое проверенное соединение возвращает значение Boolean. Если параметр TargetName указывает несколько компьютеров, возвращается массив логических значений.
Если любой пинг до заданной цели завершается успешно, возвращается $True.
Если все пинги до заданной цели завершаются неудачей, возвращается $False.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Repeat
Заставляет командлет непрерывно отправлять запросы проверки связи. Если значение TargetName представляет собой массив целей, командлет повторяет запросы проверки связи только для первой цели. Он игнорирует остальные цели. Этот параметр нельзя использовать с параметром Count.
- Тип :
SwitchParameter
- Псевдонимы:
Continuous
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-ResolveDestination
Заставляет командлет попытаться разрешить DNS-имя цели. При использовании в сочетании с параметром Traceroute также будут получены DNS-имена всех промежуточных хостов, если это возможно.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Source
Указывает имена компьютеров, с которых отправляется пинг. Введите список имен компьютеров, разделенных запятыми. По умолчанию используется локальный компьютер.
Примечание
Этот параметр не поддерживается в PowerShell версий 6 и более поздних. Указание этого параметра приводит к ошибке.
- Тип :
String
- Позиция:
Именованный
- Значение по умолчанию:
Локальный компьютер
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-TargetName
Указывает компьютер(ы) для тестирования. Введите имена компьютеров или IP-адреса в формате IPv4 или IPv6.
- Тип :
String[]
- Псевдонимы:
ComputerName
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-TcpPort
Указывает номер TCP-порта на целевом объекте, который будет использоваться в тесте TCP-соединения.
Командлет пытается установить TCP-соединение с указанным портом на целевом объекте.
- Командлет возвращает
$True, если соединение установлено. - Командлет возвращает
$False, если соединение не установлено.
- Тип :
Int32
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-TimeoutSeconds
Устанавливает значение тайм-аута для теста. Тест завершается неудачей, если ответ не получен до истечения времени ожидания. По умолчанию — пять секунд.
Этот параметр был введен в PowerShell 6.0.
- Тип :
Int32
- Позиция:
Именованный
- Значение по умолчанию:
5 секунд
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Traceroute
Заставляет командлет выполнить проверку трассировки. При использовании этого параметра командлет возвращает объект TestConnectionCommand+TraceStatus.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
Входы
Нет
Вы не можете передавать объекты в этот командлет.
Выходы
Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
По умолчанию этот командлет возвращает объект TestConnectionCommand+PingStatus для каждого ответа ping.
Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus
При использовании параметра Traceroute этот командлет возвращает объект TestConnectionCommand+TraceStatus для каждого ответа ping на маршруте.
Логическое значение
При использовании параметров Quiet или TcpPort этот командлет возвращает Boolean значение. Если командлет проверяет несколько соединений, он возвращает массив значений Boolean.
Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus
При использовании параметра MtuSize этот командлет возвращает объект TestConnectionCommand+PingMtuStatus для каждого ответа на запрос проверки связи.
Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus
При использовании параметра Detailed этот командлет возвращает объект TestConnectionCommand+TcpPortStatus, который показывает состояние TCP-соединения.
Примечания
В Linux использование параметра BufferSize или любой комбинации параметров с набором параметров MtuSizeDetect, в результате чего размер буфера не по умолчанию составляет 32 байта, может потребовать sudo. В этих случаях Test-Command вызывает исключение с сообщением, указывающим, что требуется sudo.