Andrea Beggi

Why? I'm a runner. That's what we do.

Netsh: un esempio di utilizzo

A T T E N Z I O N E ! Questo post ha piu' di sei mesi. Le informazioni contenute potrebbero non essere aggiornate.

Netsh E’ un comando della shell che funziona sia in modalità interattiva che batch e permette di gestire tutte le impostazioni del networking di Windows.
Vediamo come utilizzare questo utile comando per automatizzare il cambio di indirizzo IP della scheda di rete.
Supponiamo di avere un portatile che debba lavorare in due diversi ambienti: in uno l’indirizzo IP viene servito da un server DHCP, quindi le impostazioni devono essere “Ottieni indirizzo IP automaticamente”, nell’altro ambiente di rete è necessario impostare tutti i parametri dell’IP in modo statico. Nesth ci viene in aiuto: è possibile creare due files batch per attivare le modifiche con un semplice doppio click.
Lanciamo un prompt dei comandi e come prima cosa procuriamoci il nome dell’interfaccia di rete, tramite il comando netsh interface show interface. Nella colonna Nome interfaccia identifichiamo il valore che ci serve, supponiamo che sia “Connessione alla rete locale (LAN)”.
Adesso creiamo un file dhcp.bat con il seguente contenuto:

netsh interface ip set address name="Connessione alla rete locale (LAN)" source=dhcp

netsh interface ip set dns name="Connessione alla rete locale (LAN)" source=dhcp

netsh set wins name="Connessione alla rete locale (LAN)" source=dhcp
(Vanno scritti su tre righe solamente)

L’ultima riga serve solo se la rete usa un servizio WINS.

Creiamo anche un file ip_statico.bat con:

netsh interface ip set address name="Connessione alla rete locale (LAN)" source=static addr=a.a.a.a mask=b.b.b.b gateway=c.c.c.c gwmetric=0

netsh interface ip set dns "Connessione alla rete locale (LAN)" static d.d.d.d Primary

netsh add dns "Connessione alla rete locale (LAN)" addr=e.e.e.e index=2
(Anche questi vanno scritti su tre sole righe)

dove:
a.a.a.a = indirizzo IP statico da assegnare
b.b.b.b = subnet mask
c.c.c.c = indirizzo del gateway
d.d.d.d = indirizzo del DNS primario
e.e.e.e = indirizzo del DNS secondario (se avete solo il primario, omettete questa riga)

A questo punto basta lanciare il .bat con la configurazione desiderata per cambiare al volo la configurazione della rete.

57 Commenti

KLEIN | #

Complimenti Andrea Beggi per i contenuti del tuo spazio web. A chi potesse essere utile volevo suggerire: http://www.milnersolutions.com/netprofiles/ consente di creare diversi profili di rete, ed è completamente freeware. Occorre installare il Framework .NET però…
saluti KLEIN

Andrea Melis | #

Grande!
Anche se il post a quasi 5 anni a fatto il suo dovere!

A.

oscar | #

ho settato il server proxy nel campo connessioni lan avanzate ma ogni volta che accendo il pc mi ritrovo scritto un’altro server proxy …quello che utilizzavo prima cioè il vecchio:perchè

Silvio | #

Grazie della guida. Ti segnalo però che per il DNS secondario ho dovuto usare questo comando:

netsh interface ip add dns “Connessione alla rete locale (LAN)” addr=e.e.e.e index=2

Simone7719 | #

ho fatto un programmino che sfrutta netsh semplicissimo da usare cerco tester io ho modo di provarlo solo su Win7 e Win Vista il tutto funziona, in teoria funziona anche con XP e 2000 chi lo vuole provare mi contatti pure su strama77@virgilio.it desidererei anche qualche consiglio su cosa posso aggiungere per migliorarlo grazie a tutti!
CIAU!!!

Carl077 | #

Salve a tutti

Non riesco a fare uno script per abilitare una scheda e disabilitarne un’altra.
Premesso che ho due interfacce:
netsh interface show interface

Stato admin Stato Tipo Nome interfaccia
————————————————————
Disabilitato Disconnesso Dedicato Rete 100Mbps Lan
Abilitato Connessione Dedicato Rete 1Gbps Wan

Utilizzando ad esempio questo comando:
netsh interface set interface name=”Rete 100Mbps Lan” admin=ENABLED
Mi da questo errore:
Nessuna interfaccia registrata sul router con questo nome.

Dove sto sbagliando?

emanuele | #

Salve a tutti, avrei una domanda: come mai se provo a settare i dns con win7 mi dice che il comando non è valido?