Test-Connection
Invia pacchetti di richieste echo ICMP o ping a uno o più computer.
Sintassi
Test-Connection
[-ComputerName] <String[]>
[-AsJob]
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-ComputerName] <String[]>
[-Source] <String[]>
[-AsJob]
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Credential <PSCredential>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-ComputerName] <String[]>
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[-Quiet]
[<CommonParameters>]
Descrizione
Il Test-Connection
cmdlet invia pacchetti di richiesta 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 attraverso una rete IP.
È possibile usare i parametri di Test-Connection
per specificare sia i computer di invio che di destinazione, 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 Win32_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 -ComputerName Server01
Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 1
Test-Connection
utilizza il parametro ComputerName per specificare il computer Server01.
Esempio 2: Inviare richieste echo a diversi computer
In questo esempio vengono inviati ping dal computer locale a diversi computer remoti.
Test-Connection -ComputerName Server01, Server02, Server12
Esempio 3: Inviare richieste echo da diversi computer a un computer
In questo esempio vengono inviati ping da computer di origine diversi a un singolo computer remoto, Server01.
Test-Connection -Source Server02, Server12, localhost -ComputerName Server01 -Credential Domain01\Admin01
Test-Connection
usa il parametro Credential per specificare le credenziali di un utente che dispone dell'autorizzazione per inviare una richiesta ping dai computer di origine. Usare questo formato di comando per testare la latenza delle connessioni da più punti.
Esempio 4: 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 -ComputerName Server01 -Count 3 -Delay 2 -TTL 255 -BufferSize 256 -ThrottleLimit 32
Test-Connection
utilizza il parametro TargetName per specificare Server01. Il parametro Count specifica tre ping inviati al computer Server01 con intervallo di ritardo di 2 secondi.
È possibile usare queste opzioni quando la risposta ping richiede più tempo del solito, a causa di un numero esteso di hop o di una condizione di rete con traffico elevato.
Esempio 5: Eseguire un test come processo in background
Questo esempio illustra come eseguire un Test-Connection
comando come processo in background di PowerShell.
$job = Test-Connection -ComputerName (Get-Content Servers.txt) -AsJob
if ($job.JobStateInfo.State -ne "Running") {$Results = Receive-Job $job}
Il comando esegue il Test-Connection
ping di molti computer in un'organizzazione. Il valore del parametro ComputerName è un Get-Content
comando che legge un elenco di nomi di computer da Servers.txt file
. Il comando usa il parametro AsJob per eseguire il comando come processo in background e salva il processo nella $job
variabile .
Il if
comando verifica che il processo non sia ancora in esecuzione. Se il processo non è in esecuzione, Receive-Job
ottiene i risultati e li archivia nella $Results
variabile .
Esempio 6: Eseguire il ping di un computer remoto con credenziali
Questo comando usa il cmdlet per effettuare il Test-Connection
ping di un computer remoto.
Test-Connection Server55 -Credential Domain55\User01 -Impersonation Identify
Il comando usa il parametro Credential per specificare un account utente autorizzato a effettuare il ping del computer remoto e il parametro Impersonation per modificare il livello di rappresentazione in Identificazione.
Esempio 7: Create 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 -ComputerName Server01 -Quiet) {New-PSSession Server01}
Il if
comando usa il Test-Connection
cmdlet per eseguire il ping del computer Server01. Il comando usa il parametro Quiet , che restituisce un valore booleano , anziché un oggetto Win32_PingStatus . Il valore è $True
se uno dei quattro ping ha esito positivo ed è, in caso contrario, $False
.
Se il Test-Connection
comando restituisce un valore di $True
, il comando usa il cmdlet per creare la New-PSSession
sessione PSSession.
Parametri
-AsJob
Indica che questo cmdlet viene eseguito come processo in background.
Per usare questo parametro, i computer locali e remoti devono essere configurati per la comunicazione remota e, in Windows Vista e versioni successive del sistema operativo Windows, è necessario aprire PowerShell usando l'opzione Esegui come amministratore . Per altre informazioni, vedere about_Remote_Requirements.
Quando si specifica il parametro AsJob , il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a lavorare nella sessione mentre il processo viene completato. Il processo viene creato nel computer locale e i risultati del computer remoto vengono automaticamente restituiti al computer locale. Per ottenere i risultati del processo, usare il Receive-Job
cmdlet .
Per altre informazioni sui processi in background di PowerShell, vedere about_Jobs e about_Remote_Jobs.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
Specifica il livello di autenticazione utilizzato per la connessione WMI. Test-Connection
usa WMI.
I valori validi sono i seguenti:
- Non modificato: il livello di autenticazione corrisponde al comando precedente.
- Impostazione predefinita: Autenticazione di Windows.
- Nessuno: nessuna autenticazione COM.
- Connetti: autenticazione COM a livello di connessione.
- Chiamata: autenticazione COM a livello di chiamata.
- Pacchetto: autenticazione COM a livello di pacchetto.
- PacketIntegrity: autenticazione COM a livello di integrità dei pacchetti.
- PacketPrivacy: autenticazione COM a livello di privacy dei pacchetti.
Il valore predefinito è Packet che ha un valore enumerato pari a 4. Per altre informazioni sui valori di questo parametro, vedere Enumerazione AuthenticationLevel .
Type: | AuthenticationLevel |
Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Default value: | Packet (enumerated value of 4) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BufferSize
Specifica le dimensioni in byte del buffer inviato con questo comando. Il valore predefinito è (32).
Type: | Int32 |
Aliases: | Size, Bytes, BS |
Position: | Named |
Default value: | 32 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Specifica i computer di cui eseguire il ping. Digitare i nomi dei computer o gli indirizzi IP in formato IPv4 o IPv6. I caratteri jolly non sono consentiti. Questo parametro è obbligatorio.
Questo parametro non si basa sulla comunicazione remota di PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per eseguire comandi remoti.
Type: | String[] |
Aliases: | CN, IPAddress, __SERVER, Server, Destination |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Count
Specifica il numero di richieste echo da inviare. Il valore predefinito è 4.
Type: | Int32 |
Position: | Named |
Default value: | 4 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifica un account utente che dispone dell'autorizzazione per inviare una richiesta ping dal computer di origine. Digitare un nome utente, ad esempio User01 o Domain01\User01, oppure immettere un oggetto PSCredential , ad esempio uno dal Get-Credential
cmdlet.
Il parametro Credential è valido solo quando nel comando viene usato anche il parametro Source. Le credenziali non influiscono sul computer di destinazione.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Delay
Specifica l'intervallo tra i ping, in secondi.
Type: | Int32 |
Position: | Named |
Default value: | 1 (second) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Impersonation
Specifica il livello di rappresentazione da utilizzare quando questo cmdlet chiama WMI. Test-Connection
usa WMI.
I valori accettabili per questo parametro sono i seguenti:
- Default. Rappresentazione predefinita.
- Anonimo. nasconde l'identità del chiamante.
- Identificare. Consente agli oggetti di eseguire query sulle credenziali del chiamante.
- Rappresentazione. Consente agli oggetti di usare le credenziali del chiamante.
Il valore predefinito è Impersonate.
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | Impersonate |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Quiet
Il parametro Quiet restituisce un valore booleano in un oggetto System.Boolean . L'uso di questo parametro elimina tutti gli errori.
Ogni connessione testata restituisce un valore booleano . Se il parametro ComputerName specifica più computer, viene restituita una matrice di valori booleani .
Se un ping ha esito positivo, $True
viene restituito.
Se tutti i ping hanno esito negativo, $False
viene restituito.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String[] |
Aliases: | FCN, SRC |
Position: | 1 |
Default value: | Local computer |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire il comando. Se si omette questo parametro o si immette un valore pari a 0, viene usato il valore predefinito 32.
Questo valore limite si applica solo al comando corrente, non alla sessione o al computer.
Type: | Int32 |
Position: | Named |
Default value: | 32 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TimeToLive
Specifica i tempi massimi in cui è possibile inoltrare un pacchetto. Per ogni hop nei gateway, i router e così via. Il valore TimeToLive viene ridotto di uno. A zero il pacchetto viene rimosso e viene restituito un errore. In Windows il valore predefinito è 128. L'alias del parametro TimeToLive è TTL.
Type: | Int32 |
Aliases: | TTL |
Position: | Named |
Default value: | 128 in Windows |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Non è possibile inviare tramite pipe l'input a questo cmdlet.
Output
Questo cmdlet restituisce un oggetto processo, se si specifica il parametro AsJob .
Se si specifica il parametro Quiet , viene restituito un valore booleano . Se vengono testate più connessioni, viene restituita una matrice di valori booleani . In caso contrario, Test-Connection
restituisce un oggetto Win32_PingStatus per ogni ping.
Note
Questo cmdlet usa la classe Win32_PingStatus . Un Get-WMIObject Win32_PingStatus
comando equivale a un Test-Connection
comando.
Il set di parametri source è stato introdotto in PowerShell 3.0.