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

Sintassi

Test-Connection [-ComputerName] <string[]> [[-Source] <string[]>] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-BufferSize <int>] [-Count <int>] [-Credential <PSCredential>] [-Delay <int>] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Quiet] [-ThrottleLimit <int>] [-TimeToLive <int>] [<CommonParameters>]

Descrizione

Il cmdlet Test-Connection invia pacchetti di richieste echo ICMP (Internet Control Message Protocol), ovvero ping, a uno o più computer remoti e restituisce le risposte di tipo risposta echo. È possibile utilizzare questo cmdlet per determinare se è possibile contattare un determinato computer attraverso una rete IP (Internet Protocol).

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

A differenza del comando "ping" tradizionale, Test-Connection restituisce un oggetto Win32_PingStatus che è possibile esaminare in Windows PowerShell, ma è possibile utilizzare il parametro Quiet per forzarlo a restituire solo un valore booleano.

Parametri

-AsJob

Esegue il comando come processo in background.

Nota: per utilizzare questo parametro, è necessario che il computer locale e quello remoto siano configurati per la comunicazione remota e, in Windows Vista e nelle versioni successive di Windows, è necessario aprire Windows PowerShell con l'opzione "Esegui come amministratore". Per ulteriori informazioni, vedere about_Remote_Requirements.

Quando si utilizza il parametro AsJob, il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a utilizzare la sessione durante il completamento del processo. Il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.

Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.

Obbligatorio?

false

Posizione?

named

Valore predefinito

False

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Authentication <AuthenticationLevel>

Specifica il livello di autenticazione utilizzato per la connessione WMI. Test-Connection utilizza WMI.

I valori validi sono:

Unchanged: il livello di autenticazione è lo stesso del comando precedente.

Default: autenticazione Windows.

None: nessuna autenticazione COM.

Connect: autenticazione COM a livello di connessione.

Call: autenticazione COM a livello di chiamata.

Packet: autenticazione COM a livello di pacchetto

PacketIntegrity: autenticazione COM a livello di integrità del pacchetto.

PacketPrivacy: autenticazione COM a livello di privacy del pacchetto

Obbligatorio?

false

Posizione?

named

Valore predefinito

4

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-BufferSize <int>

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

Obbligatorio?

false

Posizione?

named

Valore predefinito

32

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-ComputerName <string[]>

Specifica i computer per cui effettuare il ping. Digitare i nomi dei computer o gli indirizzi IP in formato IPv4 o IPv6. Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Count <int>

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

Obbligatorio?

false

Posizione?

named

Valore predefinito

4

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01", o immettere un oggetto PSCredential, ad esempio uno ottenuto dal cmdlet Get-Credential.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Current user

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Delay <int>

Specifica l'intervallo tra ping, in secondi.

Obbligatorio?

false

Posizione?

named

Valore predefinito

1 (second)

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Impersonation <ImpersonationLevel>

Specifica il livello di rappresentazione da utilizzare per le chiamate WMI. Test-Connection utilizza WMI. Il valore predefinito è "Impersonate".

I valori validi sono:

Default: rappresentazione predefinita.

Anonymous: nasconde l'identità del chiamante.

Identify: consente agli oggetti di eseguire query delle credenziali del chiamante.

Impersonate: consente agli oggetti di utilizzare le credenziali del chiamante.

Obbligatorio?

false

Posizione?

named

Valore predefinito

3

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Quiet

Elimina tutti gli errori e restituisce $True se alcuni ping hanno avuto esito positivo e $False se hanno avuto tutti esito negativo.

Obbligatorio?

false

Posizione?

named

Valore predefinito

False

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Source <string[]>

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

Obbligatorio?

false

Posizione?

2

Valore predefinito

Local computer

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-ThrottleLimit <int>

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Se si omette questo parametro o si immette un valore pari a 0, viene utilizzato il valore predefinito 32.

Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.

Obbligatorio?

false

Posizione?

named

Valore predefinito

32

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-TimeToLive <int>

Specifica il tempo massimo di attività, in secondi, di ciascun pacchetto di richieste echo (ping). Il valore predefinito è 80 secondi. L'alias del parametro TimeToLive è TTL.

Obbligatorio?

false

Posizione?

named

Valore predefinito

80

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Nessuno

Non è possibile reindirizzare l'input a questo cmdlet.

Output

System.Management.ManagementObject#root\cimv2\Win32_PingStatus, System.Management.Automation.RemotingJob, System.Boolean

Quando si utilizza il parametro AsJob, il cmdlet restituisce un oggetto processo. Quando si utilizza il parametro Quiet, restituisce un valore booleano. In caso contrario, questo cmdlet restituisce un oggetto Win32_PingStatus per ogni ping.

Note

Questo cmdlet utilizza la classe Win32_PingStatus. Un comando "get-wmiojbect win32_pingstatus" equivale a un comando Test-Connection.

Esempio 1

C:\PS>test-connection server01

Source        Destination     IPV4Address     IPV6Address  Bytes    Time(ms)
------        -----------     -----------     -----------  -----    --------
ADMIN1        Server01        157.59.137.44                32       0
ADMIN1        Server01        157.59.137.44                32       0
ADMIN1        Server01        157.59.137.44                32       0
ADMIN1        Server01        157.59.137.44                32       1

Descrizione
-----------
Questo comando invia i pacchetti di richieste echo (ping) dal computer locale al computer Server01. Questo comando utilizza il parametro ComputerName per specificare il computer Server01, ma omette il nome del parametro facoltativo.






Esempio 2

C:\PS>test-connection -computername server01, server02, server12 -credential domain01\user01

Descrizione
-----------
Questo comando invia ping dal computer locale a diversi computer remoti. Viene utilizzato il parametro Credential per specificare un account utente che dispone dell'autorizzazione per effettuare il ping di tutti i computer remoti.






Esempio 3

C:\PS>test-connection -source Server02, Server 12, localhost -computername Server01

Descrizione
-----------
Questo comando invia ping da computer di origine diversi a un solo computer remoto, Server01. Utilizzare questo formato di comando per verificare la latenza delle connessioni da più punti.






Esempio 4

C:\PS>test-connection -computername Server01 -count 3 -delay 2 -TTL 256 -buffersize 256 -throttle 32

Descrizione
-----------
Questo comando invia tre ping dal computer locale al computer Server01. Vengono utilizzati i parametri di Test-Connection per personalizzare il comando.

Utilizzare questo formato di comando quando si prevede che la risposta del ping impieghi più tempo del solito, a causa di un elevato numero di hop o di una condizione di rete a traffico intenso.






Esempio 5

C:\PS>$job = test-connection -computername (get-content servers.txt) -asjob

C:\PS> if ($job.jobstateinfo.state -ne "Running") {$results = receive-job $job}

Descrizione
-----------
In questo esempio viene illustrato come eseguire un comando Test-Connection come processo in background di Windows PowerShell. 

Il primo comando utilizza il cmdlet Test-Connection per effettuare il ping di molti computer in un'organizzazione. Il valore del parametro ComputerName è un comando Get-Content che legge un elenco di nomi di computer dal file Servers.txt. Viene utilizzato il parametro AsJob per eseguire il comando come processo in background.

Il secondo comando verifica che il processo non sia ancora in esecuzione e, se non lo è, utilizza un comando Receive-Job per ottenere i risultati e archiviarli nella variabile $results.






Esempio 6

C:\PS>test-connection Server55 -credential domain55\user01 -impersonation Identify

Descrizione
-----------
Questo comando utilizza il cmdlet Test-Connection per effettuare il ping di un computer remoto. Il comando utilizza il parametro Credential per specificare un account utente con l'autorizzazione per effettuare il ping del computer remoto e il parametro Impersonation per modificare il livello di rappresentazione in "Identify".






Esempio 7

C:\PS>if (test-connection -computername Server01 -quiet) {new-pssession Server01}

Descrizione
-----------
Con questo comando viene creata una sessione PSSession in Server01 solo se almeno uno dei ping inviati al computer ha avuto esito positivo.

Il comando utilizza il cmdlet Test-Connection per effettuare il ping del computer Server01. Il comando utilizza il parametro Quiet che restituisce un valore booleano anziché un oggetto Win32_PingStatus. Il valore è $True se uno dei quattro ping ha esito positivo; in caso contrario, false.

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






Vedere anche




Argomenti della Guida