Condividi tramite


Test-Connection

Invia pacchetti di richieste echo ICMP o ping a uno o più computer.

Sintassi

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>]

Descrizione

Il Test-Connection cmdlet invia pacchetti di richieste echo ICMP (Internet Control Message Protocol) o ping a uno o più computer remoti e restituisce le risposte di risposta echo. È possibile usare questo cmdlet per determinare se un determinato computer può essere contattato in una rete IP.

È possibile usare i parametri di Test-Connection per specificare sia i computer di invio che di ricezione, per eseguire il comando come processo in background, per impostare un timeout e il numero di ping e per configurare la connessione e l'autenticazione.

A differenza del comando ping familiare, Test-Connection restituisce un oggetto TestConnectionCommand+PingStatus che è possibile analizzare in PowerShell. Il parametro Quiet restituisce un valore booleano in un oggetto System.Boolean per ogni connessione testata. Se vengono testate più connessioni, viene restituita una matrice di valori booleani .

Esempio

Esempio 1: Inviare richieste echo a un computer remoto

In questo esempio vengono inviati pacchetti di richiesta echo dal computer locale al computer 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 utilizza il parametro TargetName per specificare il computer Server01. Il parametro IPv4 specifica il protocollo per il test.

Una serie di oggetti TestConnectionCommand+PingStatus viene inviata al flusso di output, un oggetto per risposta ping dal computer di destinazione.

Esempio 2: Inviare richieste echo a diversi computer

In questo esempio vengono inviati ping dal computer locale a diversi computer remoti.

Test-Connection -TargetName Server01, Server02, Server12

Esempio 3: Usare i parametri per personalizzare il comando di test

In questo esempio vengono usati i parametri di Test-Connection per personalizzare il comando. Il computer locale invia un test ping a un computer remoto.

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

Test-Connection usa il parametro TargetName per specificare Server01. Il parametro Count specifica che tre ping vengono inviati al computer Server01 con intervallo di ritardo di 2 secondi.

È possibile usare queste opzioni quando si prevede che la risposta ping richiede più tempo del solito, a causa di un numero esteso di hop o di una condizione di rete a traffico elevato.

Esempio 4: Eseguire un test come processo in background

Questo esempio illustra come eseguire un Test-Connection comando come processo in background di PowerShell.

$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -Wait

Il Start-Job comando usa il cmdlet per eseguire il Test-Connection ping di molti computer in un'organizzazione. Il valore del parametro TargetName è un Get-Content comando che legge un elenco di nomi di computer dal Servers.txt file. Il comando usa il Start-Job cmdlet per eseguire il comando come processo in background e salva il processo nella $job variabile.

Il Receive-Job comando viene indicato fino al -Wait completamento del processo e quindi ottiene i risultati e li archivia nella $Results variabile.

Esempio 5: Creare una sessione solo se un test di connessione ha esito positivo

In questo esempio viene creata una sessione nel computer Server01 solo se almeno uno dei ping inviati al computer ha esito positivo.

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

Il Test-Connection cmdlet esegue il ping del Server01 computer, con il parametro Quiet fornito. Il valore risultante è $True se uno dei quattro ping ha esito positivo. Se nessuno dei ping ha esito positivo, il valore è $False.

Se il Test-Connection comando restituisce un valore , $Trueil comando usa il New-PSSession cmdlet per creare la sessione PSSession.

Esempio 6: Usare il parametro Traceroute

Introdotto in PowerShell 6.0, il parametro Traceroute esegue il mapping di una route tra il computer locale e la destinazione remota specificata con il parametro 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

Il Test-Connection comando viene chiamato con il parametro Traceroute . I risultati, che sono [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus] oggetti, vengono restituiti nel flusso di output Operazione riuscita .

Esempio 7: Ottenere un output dettagliato per un test di connessione TCP

Quando si usa il parametro Detailed , questo cmdlet restituisce informazioni dettagliate sullo stato dei tentativi di connessione 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

Parametri

-BufferSize

Specifica le dimensioni in byte del buffer inviato con questo comando. Il valore predefinito è 32.

Tipo:Int32
Alias:Size, Bytes, BS
Posizione:Named
Valore predefinito:32
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Count

Specifica il numero di richieste echo da inviare. Il valore predefinito è 4.

Tipo:Int32
Posizione:Named
Valore predefinito:4
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Delay

Specifica l'intervallo tra i ping, in secondi.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Detailed

Quando si usa il parametro Detailed , questo cmdlet restituisce informazioni dettagliate sullo stato dei tentativi di connessione TCP.

Questo parametro è stato aggiunto in PowerShell 7.4.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DontFragment

Questo parametro imposta il flag Don't Fragment nell'intestazione IP. È possibile usare questo parametro con il parametro BufferSize per testare le dimensioni di Path MTU. Per altre informazioni su Path MTU, vedere l'articolo Individuazione MTU percorso in wikipedia.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-IPv4

Forza il cmdlet a usare il protocollo IPv4 per il test.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-IPv6

Forza il cmdlet a usare il protocollo IPv6 per il test.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-MaxHops

Imposta il numero massimo di hop che è possibile inviare a un messaggio di richiesta ICMP. Il valore predefinito è controllato dal sistema operativo. Il valore predefinito per Windows 10 e versioni successive è 128 hop.

Tipo:Int32
Alias:Ttl, TimeToLive, Hops
Posizione:Named
Valore predefinito:128
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-MtuSize

Questo parametro viene usato per individuare le dimensioni di Path MTU. Il cmdlet restituisce un oggetto PingReply#MTUSize che contiene la dimensione MTU Path alla destinazione. Per altre informazioni su Path MTU, vedere l'articolo Individuazione MTU percorso in wikipedia.

Tipo:SwitchParameter
Alias:MtuSizeDetect
Posizione:Named
Valore predefinito:False
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Ping

Determina l'esecuzione di un test ping da parte del cmdlet. Si tratta della modalità predefinita per il Test-Connection cmdlet.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:True
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Quiet

Il parametro Quiet restituisce un valore booleano . L'uso di questo parametro elimina tutti gli errori.

Ogni connessione testata restituisce un valore booleano . Se il parametro TargetName specifica più computer, viene restituita una matrice di valori booleani .

Se un ping a una determinata destinazione ha esito positivo, $True viene restituito .

Se tutti i ping a una determinata destinazione hanno esito negativo, $False viene restituito .

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Repeat

Fa sì che il cmdlet invii continuamente richieste ping. Quando il valore di TargetName è una matrice di destinazioni, il cmdlet ripete le richieste ping solo per la prima destinazione. Ignora le destinazioni rimanenti. Questo parametro non può essere usato con il parametro Count .

Tipo:SwitchParameter
Alias:Continuous
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ResolveDestination

Fa sì che il cmdlet tenti di risolvere il nome DNS della destinazione. Se usato insieme al parametro Traceroute , verranno recuperati anche i nomi DNS di tutti gli host intermedi, se possibile.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Source

Specifica i nomi dei computer in cui ha origine il ping. Immettere un elenco di nomi computer delimitati da virgole. Il valore predefinito è il computer locale.

Nota

Questo parametro non è supportato nelle versioni 6 e successive di PowerShell. Se si specifica questo parametro, viene generato un errore.

Tipo:String
Posizione:Named
Valore predefinito:Local computer
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TargetName

Specifica i computer da testare. Digitare i nomi dei computer o gli indirizzi IP in formato IPv4 o IPv6.

Tipo:String[]
Alias:ComputerName
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-TcpPort

Specifica il numero di porta TCP nella destinazione da utilizzare nel test della connessione TCP.

Il cmdlet tenta di stabilire una connessione TCP alla porta specificata nella destinazione.

  • Il cmdlet restituisce $True se viene stabilita una connessione.
  • Il cmdlet restituisce $False se non viene stabilita una connessione.
Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TimeoutSeconds

Imposta il valore di timeout per il test. Il test non riesce se non viene ricevuta una risposta prima della scadenza del timeout. Il valore predefinito è cinque secondi.

Questo parametro è stato introdotto in PowerShell 6.0.

Tipo:Int32
Posizione:Named
Valore predefinito:5 seconds
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Traceroute

Fa sì che il cmdlet esegua un test traceroute. Quando si utilizza questo parametro, il cmdlet restituisce un TestConnectionCommand+TraceStatus oggetto .

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus

Per impostazione predefinita, questo cmdlet restituisce un oggetto TestConnectionCommand+PingStatus per ogni risposta ping.

Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus

Quando si usa il parametro Traceroute , questo cmdlet restituisce un oggetto TestConnectionCommand+TraceStatus per ogni risposta ping lungo la route.

Boolean

Quando si usano i parametri Quiet o TcpPort , questo cmdlet restituisce un valore booleano . Se il cmdlet verifica più connessioni, restituisce una matrice di valori booleani .

Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus

Quando si usa il parametro MtuSize , questo cmdlet restituisce un oggetto TestConnectionCommand+PingMtuStatus per ogni risposta ping.

Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus

Quando si usa il parametro Detailed , questo cmdlet restituisce un oggetto TestConnectionCommand+TcpPortStatus che mostra lo stato della connessione TCP.

Note

In Linux, usando il parametro BufferSize o qualsiasi combinazione di parametri con il set di parametri MtuSizeDetect che comporta una dimensione del buffer non predefinita di 32 byte potrebbe richiedere sudo. In questi casi, Test-Command genera un'eccezione con un messaggio che indica che sudo è obbligatorio.