PDA

View Full Version : Lanciare script Telnet in automatico all'avvio


pasimo88
04-04-2014, 17:26
Salve a tutti,

sono su Windows 8.1 e vorrei sapere se vi è possibilità di fare in modo che ad ogni avvio del sistema operativo, venga lanciato in automatico e in background uno script telnet.

Se si, vorrei aggiungere a questo script (che in parte già esiste) dei nuovi comandi.

Grazie a tutti.

lorenzo.c
04-04-2014, 17:32
Dovrebbe esserci una cartella apposita denominata "Esecuzione automatica", all'interno della quale puoi mettere tutto cio' che deve essere eseguito al login. :)

pasimo88
04-04-2014, 17:50
Ok, grazie, sono riuscito a trovare la cartella e in effetti lo script è partito all'avvio!

Ora, trattasi di uno script che una volta avviato, mi chiede le credenziali di accesso al mio router. Una volta inserite le credenziali, dovrei lanciare un comando da telnet: è possibile inserire tutte queste informazioni direttamente nello script?

Grazie

lorenzo.c
04-04-2014, 17:59
Ok, grazie, sono riuscito a trovare la cartella e in effetti lo script è partito all'avvio!

Ora, trattasi di uno script che una volta avviato, mi chiede le credenziali di accesso al mio router. Una volta inserite le credenziali, dovrei lanciare un comando da telnet: è possibile inserire tutte queste informazioni direttamente nello script?

Grazie

In che linguaggio e' scritto?

pasimo88
04-04-2014, 18:24
Edit: sono riuscito ad inserire quelle informazioni nello script...adesso mi rimane una sola cosa: voglio che una volta lanciato lo script, si chiuda fisicamente la finestra del prompt!! Che comando devo inserire nello script?

lorenzo.c
04-04-2014, 21:53
Per chiuderlo a fine esecuzione exit dovrebbe bastare.

pasimo88
04-04-2014, 21:59
No, purtroppo non funziona. Guarda com'è fatto lo script:

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 200
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 200
WshShell.SendKeys "telnet 192.168.1.1{ENTER}"
WScript.Sleep 200
WshShell.SendKeys "admin{ENTER}" 'Username
WScript.Sleep 200
WshShell.SendKeys "admin{ENTER}" 'Password
WScript.Sleep 200
WshShell.SendKeys "sh{ENTER}" 'goto shell mode
WScript.Sleep 200
WshShell.SendKeys "adsl configure --snr xx{ENTER}" 'Change snr to xx
WScript.Sleep 200
WshShell.SendKeys "exit{ENTER}" 'exit by shell mode
WScript.Sleep 200
WshShell.SendKeys "exit{ENTER}" 'close telnet session
WScript.Sleep 200
WshShell.SendKeys "{ENTER}" 'get command prompt
WScript.Sleep 200
WshShell.SendKeys "exit{ENTER}" 'close cmd.exe

In pratica, è come se non funzionassero gli ultimi due comandi. Perchè dopo che è uscito dalla shell e che ha chiuso la sessione di telnet, dovrebbe tornare al prompt e chiudersi con exit finale. Invece, dopo aver chiuso telnet, mi esce "Connessione all'host persa" e non si presenta nessun comando se non premo un tasto a caso per tornare al prompt. Solo a quel punto, se scrivo exit e do invio, allora si chiude la finestra.
Cioè, il codice, cosi' com'è, sembrerebbe corretto...eppure non chiude la finestra!

lorenzo.c
04-04-2014, 22:44
Ho provato con il mio router e ho risolto aumentando il tempo tra i comandi da 200 a 400, dato che alcuni si perdevano per strada. Prova un po'...

pasimo88
05-04-2014, 11:01
Provato, ma a me esce

"Bye bye. Have a nice day!!"

e subito dopo:

"Connection to host lost."

E trattino lampeggiante.

lorenzo.c
05-04-2014, 11:11
Dopo che mostra quel messaggio (quindi prima di inviare la exit, credo) fagli mandare un {BREAK} o CTRL + C (^C), vedi che succede. Altro non saprei...