Eu encontrei este link , que parece mais ou menos responder ao problema, embora o script do Linux acima tenha funcionado melhor. Descobri que o código de encerramento do processo até o final não funcionou corretamente, então tirei tudo e tudo estava bem. Eu também alterei os comandos de serviço de acordo com a discussão abaixo e terminei com: -
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 1000
WshShell.SendKeys "telnet 192.168.0.1~"
WScript.Sleep 1000
WshShell.SendKeys "admin~"
WScript.Sleep 1000
WshShell.SendKeys "admin~"
WScript.Sleep 2000
WshShell.SendKeys "wan set service pppoa_0_38_0_d --protocol pppoa --conntrigger manual~"
WScript.Sleep 12000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "wan set service pppoa_0_38_0_d --protocol pppoa --conntrigger always~"
WScript.Sleep 6000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "logout~"
WScript.Sleep 6000
WshShell.SendKeys "~"
WScript.Sleep 1000
WshShell.SendKeys "exit~"
Você simplesmente copia isso para um arquivo com um sufixo .vbs
, edita-o para atualizar o endereço IP do roteador, o usuário e a senha de login e o nome e o protocolo do serviço. Para este último, você precisará fazer o login em telnet
manualmente e digitar:
wan show service
No seu script cmd
, invoque o script editado com:
start [/wait] reconnect.vbs
Use /wait
se você quiser que o script seja concluído antes de continuar com o próximo comando.
Um problema que descobri é que, se chamado enquanto o roteador está on-line, ele fica em um estado desconectado, mas aumentar o atraso entre as duas chamadas de serviço corrige isso, e você pode precisar ajustar isso ou algumas das outras atrasos.