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 для каждой проверки связи.