Поделиться через


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. Параметр Quiet возвращает значение логического в объекте System.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 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 сопоставляет маршрут между локальным компьютером и удаленным назначением, заданным с помощью параметра 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-подключения

При использовании параметра Подробного этот командлет возвращает подробные сведения о состоянии попыток подключения 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 для каждого пинг-ответа вдоль маршрута.

Boolean

При использовании параметров 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.