Netsh: come amministrare le reti in Windows

Chi si occupa in modo più o meno intenso della configurazione di reti con Windows, si imbatterà prima o poi in Network Shell (Netsh). Dietro questo termine si nasconde un’interfaccia tra utente e sistema operativo che permette di amministrare e configurare reti locali o distanti tra loro.

Lo spettro di possibilità va dalle impostazioni per il firewall di Windows all'amministrazione di LAN e WLAN fino alla configurazione IP e di server. Inoltre, è possibile proteggere da attacchi esterni le infrastrutture collegate da una rete. Questa utilità della riga di comando permette di diagnosticare problemi e svolgere riparazioni nella rete. Un grande vantaggio di Netsh: Lo svolgimento dei compiti di gestione relativi alla rete è un processo particolarmente rapido e pratico e può essere automatizzato con l’uso di script.

Eseguire i comandi di Netsh: avviare il prompt dei comandi

Per poter utilizzare Netsh, è necessario spostarsi al prompt dei comandi che si apre attraverso il menu “Esegui” (run) come indicato di seguito:

  1. Premere la combinazione di tasti [Windows] + [R].
  2. Digitare “cmd” (1) nel box di ricerca.
  3. Premere il pulsante “OK” (2).

Infine si aprirà la finestra del prompt dei comandi. Il programma si avvia digitando “netsh” e confermando con il tasto [Invio]:

In caso di mancata esecuzione dei comandi e degli script di Netsh o se avete in programma interventi più profondi sulla configurazione della rete, è necessario avviare Network Shell con diritti da amministratore. Con Windows 10 bisogna completare i seguenti passaggi:

  1. Cliccare con il tasto destro del mouse sull’icona di Windows nella barra delle applicazioni oppure premere la combinazione di tasti [Windows] + [X].
  2. Nel menu contestuale selezionare la voce “Windows PowerShell (amministratore)”:

Una componente di Netsh è il file eseguibile netsh.exe, che si trova nella cartella di sistema di Windows (%windir%\system32). Con l’apertura diretta, accorcerete i tempi impiegati per l’inserimento dei comandi di Netsh. Potete digitare il path C:\Windows\System32\netsh.exe nella barra degli indirizzi di Windows Explorer e premere su [Invio]. Nel box di ricerca che si apre potete inserire i comandi di Netsh.

Si può accelerare il processo creando un collegamento. Dopo averlo impostato, in futuro vi basterà un solo clic del mouse per digitare il comando, effettuando le seguenti azioni:

  1. cliccate con il tasto destro del mouse sul desktop di Windows. Ora fate clic sulla voce “Nuovo” (1) e poi su “Collegamento” (2) nel menu contestuale che si aprirà:
  1. Nella procedura guidata per il collegamento potete inserire il path C:\Windows\System32\netsh.exe (1) e cliccare su “Avanti”.
  1. Si consiglia di dare un nome appropriato al collegamento (1) che troverete sul vostro desktop dopo aver cliccato su “Fine” (2).

Come è strutturato Netsh

Netsh è un’utilità di scripting che mette a disposizione numerose sintassi per i comandi. Chi vuole svolgere compiti precisi in modo mirato, deve prendere dimestichezza con la struttura specifica della Network Shell. La struttura di questa utility si basa su contesti che rappresentano diversi livelli di gestione. Ciascun contesto ricopre una funzionalità precisa della rete (per esempio configurazione IP, LAN o del firewall). Questa utility utilizza i file della Dynamic-Link Library (DDL) per interagire in modo contestuale con le componenti di Windows. Netsch si serve del Dhcpmon.dll per modificare e gestire le impostazioni del DHCP.

Per utilizzare un contesto, bisogna commutarlo nel Windows PowerShell. Nel contesto di “gestione di LAN”, ad esempio, si arriva come segue:

  1. Digitare “netsh” nel prompt dei comandi e confermare con [Invio].
  2. Digitare “lan” e confermare con [Invio].
  3. Il prompt dei comandi mostrerà la commutazione di contesto: netsh lan>

Una volta effettuata la commutazione nel contesto “LAN”, avrete a disposizione comandi del contesto e contesti aggiuntivi. Tra i comandi del contesto troviamo ad esempio “set” (configura impostazioni sulle interfacce). Un esempio di comando base di Netsch su contesti aggiuntivi è il comando help “/?”, che mostra un elenco di sottocontesti e comandi disponibili in ogni contesto. Dopo il suo invio, nel contesto “LAN” verrà mostrato il seguente elenco con tutti i comandi del contesto e dei contesti aggiuntivi:

Passando ad esempio al contesto di Firewall, la referenza dei comandi corrispondente appare come segue:

La struttura contestuale non rappresenta l’unica particolarità d’uso. Netsh permette un utilizzo in modalità non interattiva oppure in modalità interattiva. Nella modalità non interattiva alcune importanti impostazioni di rete vengono esportate in un file di testo e poi reimportate per un ripristino successivo.

Nella modalità interattiva si possono ad esempio avviare richieste dirette. Digitando “interfaccia netsh mostra indirizzo ip”, verrà mostrato l’attuale indirizzo IP del computer. La modalità interattiva può essere utilizzata online oppure offline. Nel primo caso si applicano le operazioni in modo diretto, nel secondo vengono salvate ed eseguite successivamente. Per attivare le operazioni salvate è necessario inserire al momento desiderato il comando Netsh “commit”.

I comandi di Netsh e i loro contesti

Abbiamo raggruppato nella sintesi seguente i comandi Netsh più importanti con una breve spiegazione dei contesti. Se si tratta di un comando generale di un contesto aggiuntivo, vi saranno altre spiegazioni nella colonna destra. I comandi a disposizione possono variare puntualmente in base alla versione del sistema operativo e al ruolo nella rete (client o server). L'esecuzione di un comando in un computer con un Datacenter di Windows Server 2016 è:

Comando Funzione Gestisce contesto di Netsh
.. Raggiunge un livello di contesto più alto  
? Mostra un elenco di comandi  
abort Ignora qualsiasi modifica effettuata in modalità offline  
add Aggiunge una voce di configurazione a un elenco di voci  
advfirewall Passa al contesto “netsh advfirewall” Firewall (linee guida e configurazione)
alias Aggiunge un alias  
branchcache Passa al contesto “netsh branchcache” Impostazioni del branchcache
bridge Passa al contesto “netsh bridge” Bridge di rete
bye Chiude il programma  
commit Apporta le modifiche effettuate in modalità offline  
delete Elimina una voce di configurazione da un elenco di voci  
dhcpclient Passa al contesto “netsh dhcpclient” Client DHCP
dnsclient Passa al contesto “netsh dnsclient” Impostazioni del client DNS
dump Visualizza uno script di configurazione  
exec Esegue un file di script  
exit Chiude il programma  
firewall Passa al contesto “netsh firewall” Firewall (linee guida e configurazione)
help Mostra un elenco di comandi  
http Passa al contesto “netsh http” Server web http (http.sys)
interface Passa al contesto “netsh interface” Configurazione IP (v4, v6)
ipsec Passa al contesto “netsh ipsec” Linee guida IPSec
ipsecdosprotection Passa al contesto “netsh ipsecdosprotection” Protezione da attacchi del tipo IPSEC Denial of Service
lan Passa al contesto “netsh lan” Interfacce di rete collegate
namespace Passa al contesto “netsh namespace” Linee guida del client DNS
netio Passa al contesto “netsh netio” Filtri di binding
offline Imposta offline come modalità corrente  
online Imposta la modalità attuale su online  
popd Estrae un contesto dallo stack  
pushd Inserisce un contesto corrente sullo stack  
quit Chiude il programma  
ras Passa al contesto “netsh ras” Server di accesso remoto
rpc Passa al contesto “netsh rpc” Configurazione del servizio RPC
set Impostazioni di configurazione correnti  
show Visualizza informazioni  
trace Passa al contesto “netsh trace”  
unalias Elimina un alias  
wfp Passa al contesto “netsh wfp” Piattaforma di filtraggio di Windows
winhttp Passa al contesto “netsh winhttp” Impostazioni proxy e tracking del client http di Windows
winsock Passa al contesto “netsh winsock” Configurazione di Winsock
wlan Passa al contesto “netsh wlan” Interfaccia rete senza fili

Parametri di sintassi di Netsh: cosa significano?

Per avviare azioni e compiti concreti, i comandi netsh possono essere utilizzati anche con parametri facoltativi. Lo schema di sintassi per la combinazione di comandi e parametri Netsh è:

netsh [-a AliasFile] [-c Context] [-r RemoteComputer] [-u [DomainName\]UserName] [-p Password | *] [NetshCommand | -f ScriptFile]

I seguenti parametri sono tutti facoltativi, e possono quindi essere utilizzati e integrati in base alle esigenze:

-a Specifica che dopo l'esecuzione di AliasFile verrà visualizzato nuovamente il prompt netsh.
AliasFile (ita: FileAlias) Specifica il nome del file di testo che contiene uno o più comandi netsh.
-c Specifica che Netsh immette il contesto netsh specificato.
Context (ita: Contesto) Carattere per il contesto netsh da immettere (per es. WLAN)
-r Specifica che il comando deve essere eseguito in un computer remoto (Remotecomputer) dove bisogna eseguire il registro di sistema remoto.
Remotecomputer (ita.: Computer remoto) Nome del computer remoto che verrà configurato
-u Specifica di eseguire il comando netsh con un account utente.
DomainName\ (ita: NomeDiDominio\) Specifica il dominio in cui si trova l'account utente (il valore predefinito è il dominio locale se non si specifica il DomainName)
UserName (ita: Nome utente) Nome dell'account utente
-p Specifica che verrà fornita una password per l'account utente.
Password Specifica la password per l'account utente indicato con -u UserName
NetshCommand (ita: ComandoNetsh) Specifica il comando netsh da eseguire
-f Chiude netsh dopo l'esecuzione dello script designato con ScriptFile
ScriptFile (ita: FileScript) Specifica lo script da eseguire

Ripristinare TCP/IP utilizzando l'utilità NetShell

Uno tra gli utilizzi più comuni dei comandi netsh è il ripristino TCP/IP che permette lo scambio di pacchetti di dati nelle reti. Questa misura si rivela particolarmente utile in caso di problemi di connessione o di rete, per es. di protocolli TCP/IP impostati in modo difettoso o scorretto. Con il seguente comando di riparazione viene effettuato un reset con conseguente reinstallazione di TCP/IPv4.

netsh int ip reset

Può essere inoltre predisposto un file di protocollo che documenta le modifiche avvenute con successo.

netsh int ip reset c:\tcpipreset.txt

Dopo il reset è necessario riavviare il computer.

Consiglio

I comandi di netsh possono essere utilizzati anche con file batch (*.bat) per automatizzare i compiti di routine. Potete scoprirne di più nella nostra guida “creare file batch”.

Importazione ed esportazione delle configurazioni della rete

Netsh vi permette anche di esportare in un file di testo semplice le configurazioni attuali della rete. In caso di problemi di rete sarà semplice ripristinare una configurazione funzionante e corretta.

Nel primo passaggio (esportazione) si legge la configurazione della rete, si scrive in un file di testo (netcnfig.txt) e salva in una cartella esempio chiamata “ConfigurazioneDellaRete” nel drive C:\ . Prima della prima esportazione, dovrete spostare manualmente la cartella “ConfigurazioneDellaRete” nel drive di destinazione (con netsh non viene fatto automaticamente). Poi aprite il prompt dei comandi e digitate il seguente codice:

netsh -c interface dump>c:\ConfigurazioneDellaRete\netcnfig.txt

Per la successiva importazione delle impostazioni, è necessario inserire il seguente comando:

netsh -f c:\ConfigurazioneDellaRete\netcnfig.txt
Consiglio

Windows 10 supporta la funzione copia e incolla anche nel prompt dei comandi. Questo vi permette di copiare in modo semplice la sintassi del comando da questo articolo e inserirla infine nel box di ricerca.

Configurazione IP con netsh

Un altro noto caso d’uso di netsh è la modifica delle configurazioni IP. Se a un computer non viene assegnato un indirizzo IP statico, ma automatico, si applica il Dynamic Host Configuration Protocol Questo protocollo di comunicazione permette ai client all’interno di una rete di assegnare automaticamente indirizzi IP e altri dati di configurazione necessari. Per questo processo sono necessari diversi passaggi:

Per prima cosa bisogna aprire le impostazioni correnti e i nomi delle schede di rete disponibili:

netsh interface ipv4 show interface

Ecco che verrà mostrata una scheda LAN precisa (in questo esempio: Ethernet) definita come ricevitore dell'assegnazione IP attraverso il DHCP:

netsh interface ipv4 set address name="Ethernet" source=dhcp

Il DHCP si assumerà la gestione dinamica delle configurazioni della rete che riguardano la scheda Ethernet.

Attivare e disattivare il firewall di Windows

Per attivare o disattivare il firewall di Windows, basta una semplice sintassi di comando netsh: Potete attivare il firewall come indicato di seguito:

netsh firewall set opmode enable 

Il firewall verrà disattivato con la seguente riga di comando:

netsh firewall set opmode disable
N.B.

In alcuni contesti Windows consiglia alternative all’amministrazione di rete con netsh. Viene nominato sempre più spesso Windows PowerShell di cui troverete un’introduzione nel nostro articolo dedicato.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.