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 , $True
il 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.
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.