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


Test-Connection

Отправляет пакеты запросов проверки связи ICMP на один или несколько компьютеров.

Синтаксис

Test-Connection
    [-Ping]
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <String>]
    [-MaxHops <Int32>]
    [-Count <Int32>]
    [-Delay <Int32>]
    [-BufferSize <Int32>]
    [-DontFragment]
    [-TimeoutSeconds <Int32>]
    [-TargetName] <String[]>
    [-Quiet]
    [<CommonParameters>]
Test-Connection
    [-Ping]
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <String>]
    [-MaxHops <Int32>]
    [-Delay <Int32>]
    [-BufferSize <Int32>]
    [-DontFragment]
    [-Continues]
    [-TimeoutSeconds <Int32>]
    [-TargetName] <String[]>
    [-Quiet]
    [<CommonParameters>]
Test-Connection
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-TimeoutSeconds <Int32>]
    [-TargetName] <String[]>
    -MTUSizeDetect
    [-Quiet]
    [<CommonParameters>]
Test-Connection
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <String>]
    [-MaxHops <Int32>]
    [-TimeoutSeconds <Int32>]
    [-TargetName] <String[]>
    -Traceroute
    [-Quiet]
    [<CommonParameters>]
Test-Connection
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <String>]
    [-TimeoutSeconds <Int32>]
    [-TargetName] <String[]>
    -TCPPort <Int32>
    [-Quiet]
    [<CommonParameters>]

Описание

Командлет Test-Connection отправляет пакеты эхо-запросов icMP на один или несколько удаленных компьютеров и возвращает ответы эхо-ответа. С помощью этого командлета можно определить, можно ли связаться с определенным компьютером через IP-сеть.

С помощью параметров Test-Connection можно указать отправляющий и принимающий компьютеры, выполнить команду в качестве фонового задания, задать время ожидания и количество запросов связи, а также настроить подключение и проверку подлинности.

В отличие от привычной команды ping , Test-Connection возвращает объект TestConnectionCommand+PingReport , который можно исследовать в PowerShell. Параметр Quiet возвращает логическое значение в объекте System.Boolean для каждого протестированного подключения. При тестировании нескольких подключений возвращается массив логических значений.

Примеры

Пример 1. Отправка эхо-запросов на удаленный компьютер

В этом примере пакеты эхо-запросов отправляются с локального компьютера на компьютер Server01.

Test-Connection -TargetName Server01 -IPv4

Pinging Server01 [10.59.137.44] with 32 bytes of data:
Reply from 10.59.137.44: bytes=32 time=0ms TTL=128
Reply from 10.59.137.44: bytes=32 time=0ms TTL=128
Reply from 10.59.137.44: bytes=32 time=0ms TTL=128
Reply from 10.59.137.44: bytes=32 time=0ms TTL=128
Ping complete.

Source     Destination Replies
------     ----------- -------
Server01   Server01    {System.Net.NetworkInformation.PingReply, System.Net.NetworkInformation ...

Test-Connection использует параметр TargetName для указания компьютера Server01. Параметр IPv4 указывает протокол для теста.

Выходные данные связи отправляются в поток сведений , а объект TestConnectionCommand+PingReport отправляется в поток Success . Дополнительные сведения о потоках вывода см. в разделе about_Redirection.

Пример 2. Отправка эхо-запросов на несколько компьютеров

В этом примере отправляются сообщения проверки связи с локального компьютера на несколько удаленных компьютеров.

Test-Connection -TargetName Server01, Server02, Server12

Пример 3. Отправка эхо-запросов с нескольких компьютеров на компьютер

В этом примере отправляются проверки связи с разных исходных компьютеров на один удаленный компьютер Server01.

Test-Connection -Source Server02, Server12, localhost -TargetName Server01

Этот формат команды можно использовать для тестирования задержки подключения из нескольких точек.

Пример 4. Использование параметров для настройки команды теста

В этом примере для настройки команды используются параметры Test-Connection . Локальный компьютер отправляет тест проверки ping на удаленный компьютер.

Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256

Test-Connection использует параметр TargetName , чтобы указать Server01. Параметр Count указывает, что на компьютер Server01 отправляются три ping с интервалом задержки в 2 секунды.

Эти параметры можно использовать, если ожидается, что ответ проверки связи займет больше времени, чем обычно, из-за большого количества прыжков или из-за состояния сети с большим трафиком.

Пример 5. Запуск теста в качестве фонового задания

В этом примере показано, как выполнить Test-Connection команду в качестве фонового задания PowerShell.

$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content "Servers.txt") }
if ($job.JobStateInfo.State -ne "Running") { $Results = Receive-Job $job }

Команда Start-Job использует Test-Connection командлет для проверки связи со многими компьютерами на предприятии. Значение параметра TargetName — это Get-Content команда, которая считывает список имен компьютеров из Servers.txt файла. Команда использует Start-Job командлет для выполнения команды в качестве фонового задания и сохраняет задание в переменной $job .

Команда if проверяет, не выполняется ли задание. Если задание не выполняется, Receive-Job получает результаты и сохраняет их в переменной $Results .

Пример 6. Create сеанса только в том случае, если проверка подключения прошла успешно

В этом примере сеанс создается на компьютере Server01 только в том случае, если хотя бы один из отправленных на компьютер сообщений проверки связи успешно выполнен.

if (Test-Connection -TargetName Server01 -Quiet) {New-PSSession Server01}

Команда if использует Test-Connection командлет для проверки связь с компьютером Server01. Команда использует параметр Quiet , который возвращает логическое значение, а не объект TestConnectionCommand+PingReport .

Значение равно , $True если любой из четырех ping успешно выполнен. Если ни одна из проверки пингов не выполнена успешно, значение равно $False.

Test-Connection Если команда возвращает значение $True, команда использует New-PSSession командлет для создания PSSession.

Пример 7. Использование параметра Traceroute

Начиная с PowerShell 6.0, параметр Traceroute сопоставляет маршрут между локальным компьютером и удаленным назначением, указанным с помощью параметра TargetName .

Test-Connection -TargetName www.microsoft.com -Traceroute | ForEach-Object {
  $_ | Format-Table Source, DestinationAddress, DestinationHost
  $_.Replies | ForEach-Object {
      $_ | Format-Table Hop, ReplyRouterAddress
      $_.PingReplies | Format-Table
  }
}

Tracing route to www.microsoft.com [96.6.27.90] over a maximum of 128 hops:
  1   0 ms   0 ms   0 ms   192.168.0.3 [192.168.0.3]
  2   0 ms   0 ms   0 ms   192.168.1.1 [192.168.1.1]
  3   3 ms   29 ms   4 ms   96.6.27.90 [96.6.27.90]
Trace complete.

Source      DestinationAddress DestinationHost   Replies
------      ------------------ ---------------   -------
SERVER01    96.6.27.90         www.microsoft.com {, , }

Hop ReplyRouterAddress
--- ------------------
  1 192.168.0.3

    Status Address      RoundtripTime Options Buffer
    ------ -------      ------------- ------- ------
TtlExpired 192.168.86.1             0         {}
TtlExpired 192.168.86.1             0         {}
TtlExpired 192.168.86.1             0         {}

Hop ReplyRouterAddress
--- ------------------
  2 192.168.1.1

    Status Address     RoundtripTime Options Buffer
    ------ -------     ------------- ------- ------
TtlExpired 192.168.1.1             0         {}
TtlExpired 192.168.1.1             0         {}
TtlExpired 192.168.1.1             0         {}

Hop ReplyRouterAddress
--- ------------------
  3 96.6.27.90

 Status Address    RoundtripTime Options                                   Buffer
 ------ -------    ------------- -------                                   ------
Success 96.6.27.90             3 System.Net.NetworkInformation.PingOptions {97, 98, 99, 100…}
Success 96.6.27.90             2 System.Net.NetworkInformation.PingOptions {97, 98, 99, 100…}
Success 96.6.27.90             4 System.Net.NetworkInformation.PingOptions {97, 98, 99, 100…}

Команда Test-Connection использует параметр Traceroute . Результаты, которые являются [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceRouteResult] объектами, передаются в ForEach-Object командлет . ForEach-Object создает структурированные выходные данные содержащихся [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceRouteReply] объектов и последующих [System.Net.NetworkInformation.PingReply] объектов.

Параметры

-BufferSize

Указывает размер (в байтах) буфера, отправленного с помощью этой команды. Значение по умолчанию: 32.

Type:Int32
Aliases:Size, Bytes, BS
Position:Named
Default value:32
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Continues

Заставляет командлет постоянно отправлять запросы проверки связи. Этот параметр нельзя использовать с параметром Count .

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Count

Указывает число отправляемых запросов проверки связи. Значение по умолчанию — 4.

Type:Int32
Position:Named
Default value:4
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Delay

Задает интервал между проверками связи в секундах.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DontFragment

Этот параметр задает флаг Не фрагментировать в заголовке IP-адреса. Этот параметр можно использовать вместе с параметром BufferSize для проверки размера MTU пути. Дополнительные сведения о пути MTU см. в статье Path MTU Discovery в Википедии.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IPv4

Заставляет командлет использовать протокол IPv4 для теста.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IPv6

Заставляет командлет использовать протокол IPv6 для теста.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxHops

Задает максимальное количество прыжков, которые можно отправить сообщение запроса ICMP. Значение по умолчанию управляется операционной системой. Значение по умолчанию для Windows 10 — 128 прыжков.

Type:Int32
Aliases:Ttl, TimeToLive, Hops
Position:Named
Default value:128 hops in Windows 10
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MTUSizeDetect

Этот параметр используется для обнаружения размера MTU пути. Командлет возвращает целевому объекту PingReply#MTUSize , который содержит размер MTU path. Дополнительные сведения о пути MTU см. в статье Path MTU Discovery в Википедии.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Ping

Вызывает командлет для выполнения проверки проверки, которая является действием по умолчанию.

Type:SwitchParameter
Position:Named
Default value:Ping test
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Quiet

Параметр Quiet возвращает логическое значение в объекте System.Boolean . Использование этого параметра подавляет все ошибки.

Каждое проверенное подключение возвращает логическое значение. Если параметр TargetName указывает несколько компьютеров, возвращается массив логических значений.

Если проверка пинга выполнена успешно, $True возвращается значение .

Если все проверки ping завершаются ошибкой, $False возвращается значение .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResolveDestination

Вызывает попытку командлета разрешить DNS-имя целевого объекта.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Source

Указывает имена компьютеров, на которых создается проверка связи. Введите разделенный запятыми список имен компьютеров. По умолчанию это локальный компьютер.

Type:String
Position:Named
Default value:Local computer
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetName

Указывает компьютеры для тестирования. Введите имена компьютеров или IP-адреса в формате IPv4 или IPv6. Подстановочные знаки запрещены. Это обязательный параметр. ComputerName — это псевдоним для этого параметра.

Type:String[]
Aliases:ComputerName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TCPPort

Указывает номер TCP-порта в целевом объекте, который будет использоваться в тесте TCP-подключения. Командлет попытается установить TCP-подключение к указанному порту в целевом объекте.

Type:Int32
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutSeconds

Задает значение времени ожидания для теста. Тест завершается ошибкой, если ответ не получен до истечения времени ожидания. Значение по умолчанию — пять секунд.

Этот параметр появился в PowerShell 6.0.

Type:Int32
Position:Named
Default value:5 seconds
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Traceroute

Вызывает командлет для выполнения теста трассировки маршрута. При использовании этого параметра командлет возвращает TestConnectionCommand+TraceRouteResult объект .

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

None

Вы не можете передать входные данные в этот командлет.

Выходные данные

TestConnectionCommand+PingReport, TestConnectionCommand+TraceRouteResult, Boolean, PingReply

Если указать параметр Quiet , он возвращает логическое значение. При тестировании нескольких подключений возвращается массив логических значений. Test-Connection В противном случае возвращает объект TestConnectionCommand+PingReport для каждой проверки связи.