Se sei un amministratore di sistema Windows, conosci già quanto il comando Telnet sia stato per anni uno strumento rapido per verificare la connettività e diagnosticare problemi di rete. Come avviene per tutte le versioni di Windows — sia Client sia Server — la funzionalità del client Telnet è disabilitata per impostazione predefinita.
Quando devi testare la raggiungibilità di un host remoto o verificare se un servizio risponde correttamente su una porta TCP, puoi abilitare il client Telnet oppure scegliere alternative più moderne, sicure e versatili. Tra queste rientrano Test-NetConnection di PowerShell o soluzioni basate su .NET/TcpClient, strumenti che offrono un livello di controllo decisamente superiore rispetto al Telnet tradizionale.
In questo articolo analizzeremo tutte queste opzioni, confrontando Telnet con i comandi PowerShell e mostrando come adattare l’approccio al tuo ambiente operativo, con esempi pratici utili sia per le attività di troubleshooting sia per la gestione quotidiana dei servizi di rete.
Se desideri approfondire le funzionalità di PowerShell e migliorare la tua capacità di amministrare ambienti Microsoft in modo professionale, scopri come potenziare le tue competenze con il nostro corso PowerShell e scripting avanzato pensato per chi vuole gestire sistemi Windows in maniera efficiente e automatizzata.

Come funziona il comando Telnet: un rapido richiamo
La sintassi base è molto semplice:
telnet IndirizzoIP Porta
Esempio:
telnet 192.168.1.4 80
Questo tipo di test permette di stabilire rapidamente se la porta in ascolto risponde o meno, ma l’uso del client Telnet ha limiti evidenti, soprattutto in ambienti dove sicurezza, automazione e tracciabilità dei log sono aspetti critici.
Perché usare PowerShell al posto di Telnet
PowerShell è presente di default su tutte le versioni moderne di Windows e permette di eseguire controlli di rete in maniera più flessibile e professionale.
Un test semplice può essere effettuato con:
New-Object System.Net.Sockets.TcpClient("192.168.1.4", 80)
Se la connessione va a buon fine, PowerShell restituisce True. In caso contrario, visualizzerai False.
Questo indica, rispettivamente, se la porta target è raggiungibile o se è filtrata/non in ascolto.
Creazione di uno script PowerShell che replica Telnet
Per ottenere un comportamento ancora più simile al comando Telnet — ma con maggior controllo e integrazione nei tuoi script — è possibile creare una funzione PowerShell basata sulla classe TcpClient di .NET.
Come funziona lo script
- Utilizzo della classe TcpClient
PowerShell crea un oggetto TCP che tenta una connessione verso l’IP e la porta specificati. - Verifica dello stato della porta
- Se Connect() non genera errori → porta Open.
- Se la connessione fallisce → porta Closed/Filtered, indicando che qualcosa (firewall, servizio non attivo, routing) blocca il traffico.
- Output pulito e strutturato
Lo script al termine genera un oggetto personalizzato con i dettagli utili per la pipeline o per eventuali report.
Questo approccio è ideale per verifiche automatizzate, monitoraggio interno, script di provisioning o auditing periodico.
Per approfondire altre tecniche di monitoraggio e gestione rete avanzata, esplora i nostri percorsi formativi Microsoft per professionisti IT.
Script PowerShell per sostituire Telnet
Di seguito lo script completo. È sufficiente PowerShell 3 o versioni successive.
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
Questo script consente di replicare completamente Telnet per i test di apertura porta, con in più la possibilità di integrarlo in workflow PowerShell complessi.
Vantaggi dell’approccio PowerShell
- Automazione: puoi testare più host e più porte in sequenza.
- Affidabilità: elimina la necessità di strumenti esterni o non installati.
- Sicurezza: nessun invio di dati in chiaro, a differenza del protocollo Telnet.
- Integrazione: perfetto per orchestrare job, monitoraggi o attività schedulate.
Se vuoi portare l’automazione un passo avanti per la tua infrastruttura IT, richiedi una consulenza IT personalizzata per ottimizzare test, monitoraggio e automazione dei sistemi Windows.
Esempio pratico di utilizzo
Supponiamo di dover verificare rapidamente se un server critico risponde sulla porta 443 prima di un aggiornamento.
Lo script consente di ottenere una risposta immediata con un output chiaro, evitando falsi positivi e fornendo uno stato preciso della porta.
È uno strumento utile per diagnosi sul campo, verifiche on-site o interventi da remoto.

Conclusione
Telnet rimane utile per test rapidi, ma oggi è consigliabile adottare strumenti più moderni come PowerShell e script basati su TcpClient.
Le alternative consigliate sono:
- Test-NetConnection → immediato, integrato e sicuro.
- Script PowerShell custom → flessibile e automatizzabile.
- Portqry → utile per test approfonditi in contesti legacy.
Per approfondire la gestione di reti e sistemi Windows in modo professionale, scopri i corsi Nexsys e trasforma le tue verifiche in processi automatizzati e sicuri.


