Il cmdlet di oggi è PowerShell Test-Connection. Test-Connection
è un cmdlet che, come si può immaginare, testa la connessione di rete. Pensate a Test-Connection
come all’implementazione di PowerShell dell’utilità di ping popolare. Anche se entrambi utilizzano ICMP, vedrete che i due metodi sono un po’ diversi sotto il cofano.
Usare questo cmdlet è semplice. Nel modo più semplice, è sufficiente specificare un parametro ComputerName
, e invierà quattro richieste ICMP all’host di destinazione.
Questa output assomiglia a quella di ping.exe e, superficialmente, lo è, ma il comando test-connection di PowerShell invia la richiesta ICMP in modo leggermente diverso. A differenza di ping.exe, Test-Connection
utilizza la classe WMI Win32_PingStatus del computer locale per inviare la richiesta ICMP. Utilizzare il repository WMI locale significa che è meglio assicurarsi che il repository WMI locale sia sano, altrimenti Test-Connection
non funzionerà.
Output oggetti di PowerShell Test-Connection
Inoltre, come con la bellezza di PowerShell, questo cmdlet non restituisce solo ciò che appare immediatamente nella console. Vediamo oggetti ricchi da cui possiamo ottenere ulteriori informazioni.
Se assegno l’output a una variabile e poi controllo le proprietà, potete vedere che ho raccolto molte informazioni utili.
Se stai testando gli host interni, Test-Connection
utilizzerà DCOM per autenticarsi agli host remoti. Per impostazione predefinita, utilizzerà l’autenticazione DCOM a livello di pacchetto, ma il tipo di autenticazione può sempre essere modificato con il parametro DcomAuthentication
.
Utilizzo di Background Jobs
Questo cmdlet può anche essere eseguito come un lavoro in background. I lavori in background sono utili se hai molti computer remoti da pingare e anziché attendere per sempre per quelli che alla fine scadranno, basta inviarli a un lavoro in background.
Secondo l’aiuto di PowerShell per il test delle connessioni PowerShell, si dice che il remoting di PowerShell deve essere abilitato sia sui computer locali che remoti, ma non è vero. Come puoi vedere qui sotto, sto testando google.com, e il comando funziona ancora alla grande.


Mantenere le cose Semplici
Infine, se stai cercando solo una risposta binaria sì/no per sapere se un computer sta rispondendo o meno, puoi sempre utilizzare il parametro Quiet
. Una stringa comune che uso sempre per vedere rapidamente se un server è online o meno è utilizzare Quiet
e Count
di 1 per forzare Test-Connection
a inviare una singola richiesta ICMP.
E questo è tutto per il nostro cmdlet del giorno! Abbiamo coperto la maggior parte di ciò che è possibile con il test-connection di Powershell ma, come sempre, consulta il contenuto dell’aiuto di PowerShell o vai alla documentazione di Microsoft per una panoramica completa.
Source:
https://adamtheautomator.com/powershell-test-connection/