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

  1. bene. mi sono appena comprato il portatile e devo attaccarlo a 3 reti… ho installato un programma carrozzone per fare sto lavoro, che per mi fa gi schifo, ma questo cambia tutto 🙂

  2. veramente un comando utile.
    Gestire un portatile in 5 uffici risultato molto pi semplice… un doppio click e sono a posto!

    Perfetto!

  3. poich ho la linea adsl con libero con um modem router mi da sempre lo stesso indirizzo IP e cio 10.0.0.2 ma nn riesco a giocare in rete con un mio amico lui riesce a connettersi mentre io no ( il suo IP pur avendo la mia stessa linea ADSL ma con meodm diverso nn come l’ho io) infine vorrei sapere come fare per cambiare il mio IP grazie mille

  4. Forse la tecnica che faccio seguire potrebbe essere equivalente ma per chi ha poca voglia di scrivere come me 🙂 risulta essere pi veloce.
    Dopo avere configurato le popriet del Protocollo Internet di Windows, aprire la finestra dei comandi DOS e digitare il comando:

    >netsh -c interface dump>configurazione_IP.txt

    tale comando crea un file configurazione.txt nella cartella indicata nel percorso dei comandi DOS. In tale fle vi sono tutte le info di configurazione IP (indirizzo IP, Netmask, Default Gateway, DNS e Wins). Ogni qual volta si vogliono caricare si pu digitare il seguente comando

    >netsh -f configurazione_IP.txt

    Salt!

  5. Ottima chicca. Volevo sapere anche un’altra cosa: sempre con un file .bat possibile configurare i parametri per la connessione internet attraverso la Lan? (server proxy, scrip di configurazione automatica, rileva automaticamente impostazioni, ecc…) Grazie in anticipo. Simone.

  6. Prima di tutto grazie per i tuoi sempre ottimi e preziosi
    consigli, penso che nella procedura ip_statico.bat la riga giusta per il dns secondario sia:

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

  7. io ho il problema di gestire due IP su una stessa macchina…ma creando il file .bat l’utente (che come tale non ha gli stessi diritti dell’amministratore) non riesce a cambiare gli indirizzi IP.
    Naturalmente provando lato admin il tutto funziona regolarmente…
    potresti aiutarmi a risolvere il mio problema?
    grazie

  8. Riccardo: gli utenti non amministratori non hanno i privilegi sufficienti per modificare le impostazioni della scheda di rete. Ed un bene. E’ cos “by design”, non ci puoi fare molto, a meno di non modificare i permessi.

  9. Argomento molto interessante, se posso propongo una curiosit .
    scenario due reti:
    (rete A)scheda di rete con ip fisso classe IP C 192.168.x.y
    (rete B)scheda di rete con ip dinamico classe IP A 10.1.x.y l’assegnazione con DHCP.
    E’ possibile nel momento in cui il sistema carica la configurazione di rete intercettare tale caricamento e scegliere la configurazione di rete opportuna?

  10. Ciao,ho letto la guida sulla netshell di windows abbastanza esaustiva ,…ma mi chiedevo se possibile ottenere il nome della connessione utilizzata da un utente in remoto…anche perch se un utente cambia il proprio nome della connessione non pi possibile applicare le modifiche alla scheda di rete tramite tale comando. Inoltre volevo sapere come posso andare a settare il proxy server di windows con tale comando o con un altro equivalente come proxycfg ad esempio…
    Grazie mille!
    Aspetter con ansia notizie in merito,
    A presto.

  11. Ciao, di ringraziamenti te ne meriti una valigia. Passo al problema: ho un pc(A)con xp pro sempre connesso ad internet con connessione alice sul quale ho montato una scheda per connessioni wifi.In maniera esclusiva uso un portatile (B) con xp pro con cui navigo usando un getaway. Vorrei giocare con (B) in multiplayer ma ovviamente i pc dei miei amici non mi ‘vedono’ e con la maggioranza dei giochi io non ‘vedo’ loro. Assieme ad un amico abbiamo provato a smanettare con NAT ma con pochi risultati, potreste aiutarmi?

  12. ciao quondo faccio il file bath quando poi ritorno e avvio explorel non mi riconosce le nuove impostazioni come posso fare

  13. Un grazie di cuore ad Andrea Beggi, e a tutti quelli che hanno aggiunto commenti (Panfilo ad esempio)
    ho utilizzato il comando netsh e lo trovo davvero fantastico!
    continuate così
    saluti
    Silvestro

  14. GRAZIE !!!!!
    Mi hai risolto un bel problema, visto che per lavoro devo spesso cambiare configurazione di rete.

  15. sto configurando il portatile per poterlo utilizzare in diverse reti senza dover maneggiare le proprietà di rete.

    sto testando le tue indicazioni preziosissime.
    una correzione:
    per cambiate il dns il comando corretto e’ :
    netsh interface ip set dns “nome della connessione” static x.x.x.x primary

    ciao e grazie per l’aiuto
    marco

  16. Grazie; suggerimento utilissimo. Vado con il mio portatile presso aziende diverse e, prima, era una pizza dover sistemare manualmente le connessioni.
    Ciao
    PS: lo hanno già segnalato anche altri, ma la riga del dns secondario deve essere scritta un po’ diversamente (hai fatto 30, …)
    Grazie di nuovo

  17. W lo sviluppo del TCP/IP!
    La riga di comando corretta per aggiornare il DNS secondario su Windows XP è:
    netsh interface ip add dns NOMECONNESSIONE e.e.e.e index=2

  18. Ho creato un filetto batch di questo tipo, alcuni colleghi sono subito andati in tilt (!):

    echo off
    cls
    cd\
    cls
    echo Programma di configurazione della scheda Wireless per l’ufficio di Roma.
    echo —————————–
    echo Le impostazioni di “Connessione alla rete senza fili” verranno modificate nel pannello di controllo.
    pause
    netsh interface ip set address name=”Connessione alla rete locale (LAN)” source=static addr=a.a.a.a mask=255.255.255.0 gateway=c.c.c.c
    netsh interface ip set dns “Connessione alla rete locale (LAN)” static d.d.d.d Primary
    netsh interface ip add dns “Connessione alla rete locale (LAN)” e.e.e.e index=2
    pause
    exit

    ihihih

  19. Grazie mille, davvero utile e poi mi hai evitato una grossa “rogna” con qualcuno a me caro…
    Comuque ti scrivo per dirti che una volta creato il file.bat con le indicazioni da te forniteci non riesco a caricare il DNS alternativo.
    Sono ignorante perché non so bene a cosa serve visto che la rete funziona lo stesso però visto che c’era prima…sarà il caso di lasciarlo?

  20. Avendo due schede di rete vorrei poterne disabilitare una abilitando l’altra e viceversa con uno script. Hai qualche suggerimento? Grazie.

  21. grazie per aver messo a disposizione queste specifiche mi hanno risolto un problema con un cliente.

  22. Ciao Andrea,
    grazie prima di tutto per le valide indicazioni.
    Io sto scrivendo un programmino che testa la presenza di una connessione di rete locale, quindi permette di ottenere un indirizzo IP mediante DHCP oppure mediante configurazione a manina dei valori, quindi perfettamente in linea con le indicazioni che dai.
    Uso il “netsh interface show interface” sia per ottenere il nome della connessione di rete che per testarne lo stato di abilitazione, guardando il campo “Admin State” (corretto?), che normalmente vedo Enabled. Per fare una prova sul mio PC ho provato a disabilitare la Local Area Connection dal pannello “Network and Dial-up connections” per vedere se sarebbe cambiato qualcosa (fisicamente si’, ovviamente non vedo piu’ la connessione di rete ed internet), ma rilanciando il netsh interface show interface vedo sempre Enabled nell’Admin State della riga della Local Area Connection. Sai perchè? Sbaglio qualcosa?
    Grazie mille

    Giovanni

  23. netsh è veramente potente. con xp , dovendo gestire due connessioni diverse, una con dhcp e una statica è possibile lasciare la configurazione dhcp (ottieni automaticamente indirizzo) e settare i parametri statici dell’altra connessione nell’area configurazione manuale.
    è abbastanza rudimentale e limitato ma tuttavia funziona

  24. Ciao a tutti, il comando netsh è veramente figo, tuttavia aggiungo un altro livello di dubbio: ho due linee hdsl, 1 per navigazione, 1 per backup.
    Quando la linea di navigazione è giu’ (grazie Telecom…), sarebbe bellissimo poter lanciare da group policy di dominio uno script netsh per variare gli indirizzi dei client, tuttavia la variazione deve essere SOLO per il GATEWAY (ed evt. anche per i DNS), mentre gli indirizzi statici dovrebbero rimanere gli stessi….

  25. Ciao, è possibile lanciare netsh (o qualcosa d’altro) per vedere il gruppo (amministratori power user..) a cui appartiene l’utente attualmente in uso?
    Grazie Marco

I commenti sono chiusi.