PDA

View Full Version : Fenomeni di batch scripting, a me!


andrea.ippo
24-03-2009, 19:44
Ho scelto un titolo che attirasse l'attenzione :D

Arrivo subito al dunque:
ho degli script batch, che uso spesso, per configurare le interfacce di rete:

WiFi Casa.bat
netsh interface ip set address name="WiFi" source=static addr=192.168.1.5 mask=255.255.255.0
netsh interface ip set address name="WiFi" gateway=192.168.1.1 gwmetric=1
netsh interface ip set dns name="WiFi" source=static addr=193.70.152.15 register=PRIMARY
netsh interface ip set wins name="WiFi" source=static addr=none

WiFi Uni.bat
netsh interface ip set address name="WiFi" source=dhcp
netsh interface ip set dns name="WiFi" source=dhcp register=PRIMARY
netsh interface ip set wins name="WiFi" source=dhcp

e ce ne sono altri due per l'interfaccia ethernet.

Come avrete immaginato dai nomi, li uso per configurare al volo le interfacce di rete per usare ip statico o farmelo assegnare da dhcp (all'università)

Fino a ieri usavo un account admin, per cui li eseguivo senza problemi.
Poi, causa 2a ondata di Conficker e conseguente formattazione, mi sono auto-declassato a user.
Il sito/blog non-admin mi ha aiutato già a risolvere alcuni problemini, e girando per internet ho scoperto il comando runas di DOS (sui batch infatti non ho la possibilità di fare clic dx -> "Esegui come...")

ho provato con successo a dare, da riga di comando:
runas /utente:Andrea "C:\Documents and Settings\Andrea user\Desktop\WiFi Casa.bat"
(Andrea è l'account admin, Andrea user l'altro)

Il problema:
ogni volta dovrei aprire un terminale e dare questo comando, variando il file batch da eseguire come admin, oppure creare un "runas.bat" PER OGNI batch (wifi casa e uni, ethernet casa e uni).

Siccome la soluzione mi sa un po' di porcata (avrei in tutto 8 batch), mi rivolgo a voi per averne una più pulita, che magari preveda SOLO 4 batch "runas" che eseguano anche i comandi "netsh", del tipo:

runas /utente:Andrea {
netsh ... ;
netsh ... ;
}

è possibile?

Grazie :)


PS: avere un parametro di runas per definire la password dell'admin direttamente nel batch non mi farebbe schifo :) (eviterei di doverla ridigitare a ogni esecuzione...)
Ho provato con /password:xxx ma non ha funzionato :(

Khronos
25-03-2009, 10:19
la cosa mi interessa assai... anchio sono "costretto" al cambio di proxy e di rete dall'uni a casetta.

se intanto provasti a inserire, nel batch

cmd /k runas..................................................

e a lanciare questo dal desktop SENZA dover prima aprire il prompt?
in ogni caso ogni batch può anche eseguire più batch... ^^

andrea.ippo
25-03-2009, 10:35
la cosa mi interessa assai... anchio sono "costretto" al cambio di proxy e di rete dall'uni a casetta.

se intanto provasti a inserire, nel batch

cmd /k runas..................................................

e a lanciare questo dal desktop SENZA dover prima aprire il prompt?
in ogni caso ogni batch può anche eseguire più batch... ^^

Grazie per la risposta :)

il batch come dovrebbe essere fatto quindi?
cmd /k runas /utente:(admin) // e poi?

cioè vorrei che al runas seguisse un blocco di istruzioni (vari comandi "netsh"), piuttosto che avere un batch con comando runas che esegue un altro batch contenente i 3-4 comandi netsh (così sono già riuscito a farlo ma mi ritrovo con 8 batch anziché 4...)

Se sei admin, forse ti conviene valutare NetSetMan, un programmino free che ti permette di definire un certo numero di configurazioni per ciascuna periferica, e di scegliere quello che ti serve a seconda del posto in cui ti trovi direttamente dall'icona nella traybar ;)

wjmat
25-03-2009, 10:50
aggiro il problema....
netsetman non può fare a caso tuo? non so come si comporti con utenti limitati...
http://www.netsetman.com/index.php?s=nsm

edit
4° punto delle faq spiega per gli account limitati ;)
http://www.netsetman.com/index.php?s=help#

andrea.ippo
25-03-2009, 10:54
Grazie per la risposta :)

il batch come dovrebbe essere fatto quindi?
cmd /k runas /utente:(admin) // e poi?

cioè vorrei che al runas seguisse un blocco di istruzioni (vari comandi "netsh"), piuttosto che avere un batch con comando runas che esegue un altro batch contenente i 3-4 comandi netsh (così sono già riuscito a farlo ma mi ritrovo con 8 batch anziché 4...)

Se sei admin, forse ti conviene valutare NetSetMan, un programmino free che ti permette di definire un certo numero di configurazioni per ciascuna periferica, e di scegliere quello che ti serve a seconda del posto in cui ti trovi direttamente dall'icona nella traybar ;)

aggiro il problema....
netsetman non può fare a caso tuo? non so come si comporti con utenti limitati...
http://www.netsetman.com/index.php?s=nsm

:D
In effetti, stranamente (ma io sono fatto così :D) l'ho consigliato senza provare io stesso come si comporti con account senza privilegi admin.
Siccome ce l'avevo già in versione standalone, l'ho subito aperto e, sorpresa!, trovo un prompt per nome utente admin e password :eek:

Probabilmente se non avessi il tuo post che mi ha fatto fare la prova non me ne sarei accorto :D

:)

Khronos
25-03-2009, 18:36
netsetman?
provo.... :D