Newsgroup: it.comp.reti.wireless
Titolo: LUNGO: Workaround per disconnessioni


Scaricatelo, decomprimetelo, entrate nella cartella i386 e digitate
devcon status =net
vi sparerà una lista di periferiche (anche virtuali) legate alla rete.
Una roba del genere
C:\devcon\i386>devcon status =net
PCI\VEN_14E4&DEV_4320&SUBSYS_43201737&REV_03\4&3010B03B&0&0020
     Name: Wireless-G Notebook Adapter with SpeedBooster #2
     Driver is running.
PCI\VEN_8086&DEV_1229&SUBSYS_22038086&REV_09\3&61AAA01&0&48
     Name: Intel(R) PRO/100+ MiniPCI
     Driver is running.
ROOT\MS_IRDAMINIPORT\0000
     Name: Infrared Port
     Driver is running.
ROOT\MS_L2TPMINIPORT\0000
     Name: WAN Miniport (L2TP)
     Driver is running.
ROOT\MS_NDISWANIP\0000
     Name: WAN Miniport (IP)
     Driver is running.
ROOT\MS_PPPOEMINIPORT\0000
     Name: WAN Miniport (PPPOE)
     Driver is running.
ROOT\MS_PPTPMINIPORT\0000
     Name: WAN Miniport (PPTP)
ecc..
ecc..
Leggete la lista, se riconoscete la periferica giusta siete a posto, 
altrimenti cominciate a disabilitarle una ad una finchè non trovate la 
scheda di rete wireless.
Per disabilitarle una ad una digitate, ad esempio,
per la prima:
devcon disable =net PCI\VEN_14E4
Per la seconda
devcon disable =net PCI\VEN_8086
E così via.
Ok una volta capito qual'è la periferica di interesse il più è fatto.
Basta creare uno scriptino batch cosìffatto:
Io l'ho chiamato testwireless.bat
ping 192.168.1.1 -n 1 | find /i "bytes="
if errorlevel 1 goto repair
goto end
:repair
devcon disable =net PCI\VEN_14E4
devcon enable =net PCI\VEN_14E4
:end
E siamo a posto.
La prima riga fa un ping al gateway, intercetta la riga di risposta e 
vede se è presente la stringa "bytes=" in tale risposta. Naturalmente 
tale stringa è presente solo se il gateway risponde (basta confrontare 
la risposta di un ping riuscito con quella di un ping fallito).
L'errorlevel restituito è 0 se stringa è presente e 1 se non è presente.
In quest'ultimo caso viene eseguita la procedura di "repair" della 
scheda di rete wireless, altrimenti si salta alla fine del file e quindi 
della procedura.
Ora tale procedura va eseguita ad intervalli regolari abbastanza 
frequenti, ogni minuto, 5 minuti, magari 10 minuti ma non di più. Per 
fare ciò va messe nella operazioni pianificate (o "scheduled task") di 
windows.
Andate sul pannello di controllo, selezionate, appunto lo scheduler e 
inserite il file testwireless.bat nei task da eseguire (è veramente 
banale), andate nelle opzioni avanzate e fatelo girare ogni tot minuti 
con una durata molto alta (io ho messo 9999 ore, se usate il default di 
un ora lo scheduler dopo un'ora smette di farlo girare)
Unico incoveniente di tale script: si apre, per un attimo, la finestra 
dos mentre venono eseguiti i comandi. Non sono riuscito a farlo partire 
"minimizzato" del tutto
nella riga di comando dello scheduler, invece di avere il comando
c:\pippo\testwireless.bat
ho messo
cmd /c start /MIN c:\pippo\testwireless.bat
E così' si ha solo un brevissimo lampo quando si apre il command, ma non 
sono riuscito a far girare tutto iconizzato.
Spero 'sta menata vi sia utile prima o poi.

 
Ah... dimenticavo... in  quest'ultimo caso il file batch deve terminare 
con l'istruzione exit (che prima non era necessaria....
ricapitolando
ping 192.168.1.1 -n 1 | find /i "bytes="
if errorlevel 1 goto repair
goto end
:repair
devcon disable =net PCI\VEN_14E4
devcon enable =net PCI\VEN_14E4
:end
exit

 ha scritto nel messaggio
news:da91p6$mir$2...@area.cu.mi.it...

grazie per le dritte son sempre utili :)

 Spero 'sta menata vi sia utile prima o poi.
Credo proprio di si, ma più che altro sai per caso da cosa possa dipendere
questa instabilità?
Ciao

 questa instabilità?
Mi sono detto che potrebbe essere legato al rinnovo della chiave ma, 
appunto, me lo sono detto da solo.

 ha scritto nel messaggio 
news:da91p6$mir$2...@area.cu.mi.it...

Se ti puň interessare ho "migliorato", eliminando il lampo della shell dos, 
il tuo lavoro. Per ovviare a quell'inconveniente č sufficiente comporre un 
file vbs cosě fatto
Set WshShell = CreateObject("WScript.Shell")
cmds=WshShell.RUN("C:\DevCon\i386\Wireless.bat", 0, True)
Set WshShell = Nothing
Ed inoltre visto che adesso la cosa č completamente invisibile ho inserito 
nel BAT due righe di Log
echo -- -- -- -- -- -- -- -- -- -- >>Log.txt
echo Check Wireless>>log.txt
echo.|date|find /v "nuova">>Log.txt
echo.|time|find /v "nuova">>Log.txt
echo.Status: KO>>Log.txt
echo -- -- -- -- -- -- -- -- -- -- >>Log.txt
E possibile metterla anche nell'altra sezione, ovviamente cambiando lo 
Status in OK.
Adesso non ci rimane che cambiare le impostazioni delle operazioni 
pianificate passandogli il file Wireless.vbs
Ciao

 
Grazie per l'info

 
A proposito. COm'č finita la storia del dongle USB? se riuscito a farlo 
"reagire" a devcon?

 "reagire" a devcon?
Si, si alla fine ci sono riuscito, ho dovuto specificare tutta la stringa e 
adesso fa' correttamente il suo dovere...
P.s. Ho cambiato nuovamente il log, era troppo lungo...
Adesso scrivo un file al giorno (Log_ggmmaaaa.txt)
for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do set dt=%%i%%j%%k
set dtt=%dt%
e nel Log riporto tra parentesi data e ora ed il risultato del ping
echo [%date% %time%] Ping verso 192.168.1.1 eseguito 
correttamente.>>Log\Log_%dtt%.txt