Condividi tramite


Test-Connection

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

Sintassi

Default (Impostazione predefinita)

Test-Connection
    [-ComputerName] <String[]>
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]

Source

Test-Connection
    [-ComputerName] <String[]>
    [-Source] <String[]>
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-Count <Int32>]
    [-Credential <PSCredential>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]

Quiet

Test-Connection
    [-ComputerName] <String[]>
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [-Quiet]
    [<CommonParameters>]

Descrizione

Il cmdlet Test-Connection invia pacchetti di richiesta echo ICMP (Internet Control Message Protocol) o ping a uno o più computer remoti e restituisce le risposte 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, restituisce un oggetto Win32_PingStatus che è possibile analizzare in PowerShell. Test-Connection 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

utilizza il parametro ComputerName per specificare il computer Server01.

Esempio 2: Inviare richieste di eco a più 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 ComputerName per specificare Server01. Il parametro Conteggio specifica che vengono inviati tre ping al computer Server01 con un 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 5: Eseguire un test come processo in background

Questo esempio illustra come eseguire un comando Test-Connection 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 eseguire 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 che dispone dell'autorizzazione per effettuare il ping del computer remoto e il parametro Impersonation per modificare il livello di rappresentazione in Identificare.

Esempio 7: 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 -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 comando Test-Connection restituisce un valore di $true, il comando usa il cmdlet New-PSSession per creare la PSSession.

Parametri

-AsJob

Indica che questo cmdlet viene eseguito come processo in background. Quando si specifica il parametro AsJob , il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a lavorare nella sessione al termine del processo. 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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Default
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
Source
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-BufferSize

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

Proprietà dei parametri

Tipo:Int32
Valore predefinito:32
Supporta i caratteri jolly:False
DontShow:False
Alias:Misura, Byte, BS

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ComputerName

Specifica i computer di cui eseguire il ping. Digitare i nomi dei computer o digitare indirizzi IP in formato IPv4 o IPv6. I caratteri jolly non sono consentiti. Questo parametro è obbligatorio.

Questo parametro non si basa sul remoting di PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per eseguire comandi remoti.

Annotazioni

Il parametro ComputerName viene rinominato TargetName in PowerShell 6.0 e versioni successive.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:Cina, Indirizzo IP, __SERVER, Servidor, Destinazione

Set di parametri

(All)
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Count

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

Proprietà dei parametri

Tipo:Int32
Valore predefinito:4
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 del Get-Credential cmdlet.

Il parametro Credential è valido solo quando il parametro Source viene usato nel comando . Le credenziali non influiscono sul computer di destinazione.

Proprietà dei parametri

Tipo:PSCredential
Valore predefinito:Current user
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Source
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-DcomAuthentication

Specifica il livello di autenticazione usato da questo cmdlet con WMI. Test-Connection usa WMI. I valori accettabili per questo parametro sono:

  • Predefinito. Autenticazione di Windows
  • Nessuna. nessuna autenticazione COM.
  • Connessione. autenticazione COM a livello di connessione.
  • Chiama. 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
  • Non modificato. Uguale al comando precedente

Il valore predefinito è Packet che ha un valore enumerato pari a 4. Per altre informazioni sui valori di questo parametro, vedere Enumerazione AuthenticationLevel .

Proprietà dei parametri

Tipo:AuthenticationLevel
Valore predefinito:Packet (enumerated value of 4)
Valori accettati:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Supporta i caratteri jolly:False
DontShow:False
Alias:Autenticazione

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Delay

Specifica l'intervallo tra i ping, espresso in secondi.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:1 (second)
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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:

  • Predefinito. rappresentazione predefinita.
  • Anonimo. nasconde l'identità del chiamante.
  • Identificare. Consente agli oggetti di eseguire query sulle credenziali del chiamante.
  • Rappresentazione. Consente agli oggetti di utilizzare le credenziali del chiamante.

Il valore predefinito è Impersonate.

Proprietà dei parametri

Tipo:ImpersonationLevel
Valore predefinito:Impersonate
Valori accettati:Default, Anonymous, Identify, Impersonate, Delegate
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Protocol

Specifica un protocollo. I valori accettabili per questo parametro sono DCOM e WSMan.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Valori accettati:DCOM, WSMan
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 .

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Quiet
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Source

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

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:Local computer
Supporta i caratteri jolly:False
DontShow:False
Alias:FCN, SRC

Set di parametri

Source
Posizione:1
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ThrottleLimit

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 usato il valore predefinito 32.

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

Proprietà dei parametri

Tipo:Int32
Valore predefinito:32
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Default
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
Source
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-TimeToLive

Specifica il numero massimo di volte in cui un pacchetto può essere inoltrato. 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.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:128 in Windows
Supporta i caratteri jolly:False
DontShow:False
Alias:TTL

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-WsmanAuthentication

Specifica il meccanismo utilizzato per autenticare le credenziali utente quando questo cmdlet usa il protocollo WSMan. I valori accettabili per questo parametro sono:

  • Fondamentale
  • CredSSP
  • Predefinito
  • Sommario
  • Kerberos
  • Negoziare.

Il valore predefinito è Default.

Per ulteriori informazioni sui valori di questo parametro, consultare Enumerazione del Meccanismo di Autenticazione.

Attenzione: l'autenticazione credSSP (Credential Security Service Provider), in cui le credenziali utente vengono passate a un computer remoto da autenticare, è progettato per i comandi che richiedono l'autenticazione in più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, è possibile usare le credenziali passate per controllare la sessione di rete.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Proprietà dei parametri

Tipo:String
Valore predefinito:Default
Valori accettati:Default, Basic, Negotiate, CredSSP, Digest, Kerberos
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

None

Gli oggetti non possono essere inviati tramite pipe a questo cmdlet.

Output

ManagementObject

Per impostazione predefinita, questo cmdlet restituisce un oggetto Win32_PingStatus per ogni risposta ping.

System.Management.Automation.RemotingJob

Questo cmdlet restituisce un oggetto processo, se si specifica il parametro asjob.

Boolean

Quando si usa il parametro Quiet , viene restituito un valore booleano . Se il cmdlet verifica più connessioni, restituisce una matrice di valori Booleani.

Note

Questo cmdlet usa la classe Win32_PingStatus . Un Get-WMIObject Win32_PingStatus comando equivale a un Test-Connection comando.

Il set di parametri di origine è stato introdotto in PowerShell 3.0.