Test-Connection
Отправляет пакеты эхо-запроса ICMP на один или несколько компьютеров.
Синтаксис
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) на один или несколько удаленных компьютеров и возвращает эхо-ответы. Этот командлет можно использовать для определения того, можно ли связаться с определенным компьютером через IP-сеть.
Параметры Test-Connection
можно использовать для указания компьютеров, с которых отправляются и на которые принимаются данные, выполнения команды в фоне, установки времени ожидания и количества ping-запросов, а также настройки соединения и аутентификации.
В отличие от знакомой команды ping , Test-Connection
возвращает объект TestConnectionCommand+PingStatus, который можно анализировать в PowerShell. Параметр
Примеры
Пример 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 Success
Test-Connection
использует параметр TargetName для указания компьютера Server01. Параметр IPv4 указывает протокол для теста.
Серия объектов TestConnectionCommand+PingStatus отправляется в выходной поток, по одному объекту на каждый ping-ответ от целевой машины.
Пример 2. Отправка запросов эхо на несколько компьютеров
Этот пример отправляет запросы связи с локального компьютера на несколько удаленных компьютеров.
Test-Connection -TargetName Server01, Server02, Server12
Пример 3. Использование параметров для настройки команды тестирования
В этом примере используются параметры Test-Connection
для настройки команды. Локальный компьютер отправляет тест проверки ping на удаленный компьютер.
Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256
Test-Connection
использует параметр TargetName для указания Server01. Параметр Count указывает, что три ping-адреса отправляются на компьютер Server01 с задержкой 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 Start-Job
для выполнения команды в качестве фонового задания и сохраняет задание в переменной $job
.
Команде Receive-Job
приказано выполнять -Wait
до завершения задания, после чего она получает результаты и сохраняет их в переменной $Results
.
Пример 5. Создание сеанса только в случае успешного выполнения теста подключения
В этом примере сеанс на компьютере Server01 создается только в том случае, если по крайней мере один из отправленных на компьютер пингов проходит успешно.
if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }
Командлет Test-Connection
пингует компьютер Server01
с параметром Quiet.
Результирующее значение — $True
, если хотя бы один из четырех пингов успешен. Если ни один из пингов не выполняется успешно, значение $False
.
Если команда Test-Connection
возвращает значение $True
, команда использует командлет New-PSSession
для создания PSSession.
Пример 6. Использование параметра Traceroute
В PowerShell 6.0 параметр Traceroute
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-подключения
При использовании параметра Подробного этот командлет возвращает подробные сведения о состоянии попыток подключения 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 |
Aliases: | Size, Bytes, BS |
Position: | Named |
Default value: | 32 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Count
Указывает количество отправляемых эхо-запросов. Значение по умолчанию — 4.
Тип: | Int32 |
Position: | Named |
Default value: | 4 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Delay
Указывает интервал между пингами в секундах.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Detailed
При использовании параметра подробного этот командлет возвращает подробные сведения о состоянии попыток подключения TCP.
Этот параметр добавлен в PowerShell 7.4.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-DontFragment
Этот параметр устанавливает флаг Не фрагментировать в заголовке IP. Этот параметр можно использовать вместе с параметром BufferSize, чтобы проверить размер MTU пути. Дополнительную информацию о Path MTU см. в статье Path MTU Discovery в Википедии.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-IPv4
Заставляет командлет использовать протокол IPv4 для теста.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-IPv6
Заставляет командлет использовать протокол IPv6 для теста.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-MaxHops
Задает максимальное количество переходов для отправки сообщения запроса ICMP. Значение по умолчанию контролируется операционной системой. Значение по умолчанию для Windows 10 и выше — 128 прыжков.
Тип: | Int32 |
Aliases: | Ttl, TimeToLive, Hops |
Position: | Named |
Default value: | 128 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-MtuSize
Этот параметр используется для обнаружения размера MTU пути. Командлет возвращает объект PingReply#MTUSize, содержащий размер MTU пути к целевому объекту. Дополнительные сведения о Path MTU см. в статье Path MTU Discovery в Википедии.
Тип: | SwitchParameter |
Aliases: | MtuSizeDetect |
Position: | Named |
Default value: | False |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Ping
Заставляет командлет выполнить тест ping. Это режим по умолчанию для командлета Test-Connection
.
Тип: | SwitchParameter |
Position: | Named |
Default value: | True |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Quiet
Параметр Quiet возвращает булево значение. Использование этого параметра подавляет все ошибки.
Каждое проверенное соединение возвращает логическое значение . Если параметр targetName
Если любой ping к заданному целевому объекту успешно выполнено, возвращается $True
.
Если все pings к заданному целевому объекту завершается ошибкой, возвращается $False
.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Repeat
Заставляет командлет непрерывно отправлять ping-запросы. Если значение TargetName является массивом целевых объектов, командлет повторяет запросы связи только для первого целевого объекта. Он игнорирует оставшиеся целевые объекты. Этот параметр нельзя использовать с параметром Count.
Тип: | SwitchParameter |
Aliases: | Continuous |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ResolveDestination
Командлет пытается разрешить DNS-имя целевого объекта. При использовании в сочетании с параметром трассировки DNS-имена всех промежуточных узлов также будут извлечены, если это возможно.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Source
Указывает имена компьютеров, с которых отправляется ping. Введите разделенный запятыми список имен компьютеров. По умолчанию используется локальный компьютер.
Заметка
Этот параметр не поддерживается в PowerShell версии 6 и более поздних версий. При предоставлении этого параметра возникает ошибка.
Тип: | String |
Position: | Named |
Default value: | Local computer |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-TargetName
Указывает компьютеры для тестирования. Введите имена компьютеров или IP-адреса в формате IPv4 или IPv6.
Тип: | String[] |
Aliases: | ComputerName |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-TcpPort
Указывает номер TCP-порта в целевом объекте, который будет использоваться в тесте TCP-подключения.
Командлет пытается установить TCP-подключение к указанному порту на целевом объекте.
- Командлет возвращает
$True
, если подключение выполнено. - Командлет возвращает
$False
, если подключение не выполнено.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-TimeoutSeconds
Задает значение времени ожидания для теста. Тест завершается ошибкой, если ответ не получен до истечения срока ожидания. Значение по умолчанию — пять секунд.
Этот параметр появился в PowerShell 6.0.
Тип: | Int32 |
Position: | Named |
Default value: | 5 seconds |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Traceroute
Приводит к тому, что командлет выполняет проверку трассировки. При использовании этого параметра командлет возвращает объект TestConnectionCommand+TraceStatus
.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Невозможно передать объекты в этот командлет.
Выходные данные
Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
По умолчанию этот командлет возвращает объект TestConnectionCommand+PingStatus для каждого ответа ping.
Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus
При использовании параметра Traceroute этот командлет возвращает объект TestConnectionCommand+TraceStatus для каждого пинг-ответа вдоль маршрута.
При использовании параметров Quiet или TcpPort этот командлет возвращает логическое значение. Если командлет проверяет несколько подключений, он возвращает массив логических значений.
Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus
При использовании параметра MtuSize этот командлет возвращает объект TestConnectionCommand+PingMtuStatus для каждого ответа на эхо-запрос.
Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus
При использовании параметра Detailed этот командлет возвращает объект TestConnectionCommand+TcpPortStatus, показывающий состояние TCP-подключения.
Примечания
В Linux использование параметра BufferSize или любого сочетания параметров с параметром MtuSize, которое приводит к размеру буфера, отличному от стандартного, равного 32 байтам, может потребовать sudo
. В этих случаях Test-Command
вызывает исключение с сообщением о том, что требуется sudo
.
Связанные ссылки
PowerShell