Latest news

Telnet: ecco l’alternativa sfruttando la PowerShell

Se sei un amministratore di sistema Windows, conoscerai sicuramente l’importanza del comando Telnet nelle operazioni quotidiane di routine. Come si sa, tutte le versione di Windows sia Client che Server (a partire da Vista e versioni successive) vengono fornite con la funzionalità client Telnet disabilitata per impostazione predefinita.

Se si desidera testare la connettività o la raggiungibilità di alcuni computer, è necessario abilitare la funzionalità Windows telnet-client oppure cercare un comando alternativo a Telnet. In questo articolo, ti mostrerò come usare PowerShell, al posto della funzionalità client Telnet. Eventuali approfondimenti sul linguaggio powershell sono disponibili nel corso Powershell dedicato.

La sintassi di Telnet è abbastanza semplice come mostrato di seguito:

Telnet IndirizzoIP Porta

ES: Telnet 192.168.1.4 80

Ogni versione di Windows sia client che server è fornita di default con PowerShell già installata ed abilitato. In questo articolo creeremo un modulo di PowerShell che funzionerà esattamente come il comando Telnet tradizionale.

Dopo aver avviato la console di PowerShell e digitare il comando seguente per testare la connettività verso la porta 80 dell’IP 192.168.1.4:

New-Object System.Net.Sockets.TcpClient("192.168.1.4", 80)
powershell system.net

Nell’immagine sopra riportata “True” indica che la connessione al server ha esito positivo. False” al contrario indicherebbe che il PC non è in grado di connettersi al server sulla porta specificata.

Il comando precedente mostra se il server di destinazione è in ascolto di una porta specifica o meno. Se si desidera utilizzare il comando Telnet nella console di PowerShell esattamente come si fa nel prompt dei comandi, continuate a leggere l’articolo rimanente.

powershell telnet

Creazione di uno Script PowerShell per il Telnet: Guida Pratica

Grazie alla potenza di PowerShell e alla classe TcpClient di .NET, è possibile sviluppare uno script per verificare lo stato delle porte TCP su un computer remoto. Questo approccio è particolarmente utile per diagnosticare problemi di connettività o per monitorare l’accessibilità di servizi di rete.

Come Funziona lo Script

1. Utilizzo della Classe TcpClient:
PowerShell può sfruttare la classe TcpClient per creare un oggetto che gestisce una connessione temporanea a un computer remoto. Questo oggetto permette di interagire con una specifica porta TCP e verificarne lo stato.

2. Verifica della Porta TCP:
Lo script avvia il metodo **Connect()** sull’oggetto TcpClient, tentando di stabilire una connessione alla porta specificata.
– Se la connessione ha successo (senza errori), la variabile **$status** viene impostata su **”Open”**, indicando che la porta è aperta e accessibile.
– Se la connessione fallisce (generando un errore), la variabile **$status** viene impostata su **”Chiuso/Filtrato”**, segnalando che la porta è bloccata, inaccessibile o filtrata da un firewall.

3. Output Personalizzato:
Alla fine del processo, lo script crea un **oggetto personalizzato** che raccoglie tutti i parametri rilevanti (ad esempio, indirizzo IP, numero di porta e stato della connessione). Questo oggetto viene poi inviato alla pipeline di PowerShell, rendendo i risultati facilmente utilizzabili per ulteriori analisi o report.

Vantaggi dello Script

Automazione: Esegui verifiche di connettività in modo rapido e automatizzato, senza ricorrere a strumenti esterni.
Flessibilità: Adatta lo script per testare più porte o indirizzi IP in sequenza, ottimizzando il tempo e le risorse.
Integrazione: Combina lo script con altri strumenti di monitoraggio o reporting per una gestione proattiva della rete.

Esempio di Utilizzo

Immagina di dover verificare lo stato delle porte su un server critico per garantire che i servizi siano accessibili. Con questo script, puoi eseguire un controllo rapido e ottenere un report dettagliato, identificando eventuali problemi di connettività prima che diventino critici.

## Questo Script necessita della versione 3 di powershell in su
function Test-TcpPort ($ComputerName,$TcpPort) { try { ## Create the TcpClient object and initiate a Connect method $socket = new-object Net.Sockets.TcpClient $socket.Connect($ComputerName, $TcpPort) ## The script will only get here if an error is not thrown by the above method $status = "Open" ## Properly close the TCP connection once we're done $socket.Close() } catch { $status = 'Closed/Filtered' } finally { $obj = [PSCustomObject]@{ ComputerName = $ComputerName TcpPort = $TcpPort Status = $status } $obj } } ## Usage $ComputerName = '192.168.1.4' $TcpPort = '80' Test-TcpPort $ComputerName $TcpPort

Contattaci per scoprire come Nexsys può aiutarti a sviluppare soluzioni IT personalizzate, ottimizzare i processi aziendali e migliorare la gestione delle infrastrutture di rete. Compila il form nella pagina Contatti e richiedi una consulenza gratuita!

Hai bisogno di maggiori informazioni?

I nostri esperti IT sapranno certamente aiutarti!

Please enable JavaScript in your browser to complete this form.
My Agile Privacy

Questo sito utilizza cookie tecnici e di profilazione. 

Puoi accettare, rifiutare o personalizzare i cookie premendo i pulsanti desiderati. 

Chiudendo questa informativa continuerai senza accettare. 

Inoltre, questo sito installa Google Analytics nella versione 4 (GA4) con trasmissione di dati anonimi tramite proxy. 

Prestando il consenso, l'invio dei dati sarà effettuato in maniera anonima, tutelando così la tua privacy.