Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
brunobaco

Restar Modem via Script

Recommended Posts

Pessoal, estou precisando criar um arquivo BAT para resetar meu modem quando o arquivo for chamado (uma outra aplicação fará isso).

Tenho um D-Link 500G. Vi um script com isso aqui :huh::

@rem ////// Edite as linhas abaixo com os seus dados

@set ip=10.1.1.1
@set username=admin
@set password=admin
@set comando1=reboot


@rem ///// Não edite as linhas abaixo:

@rem ///// Criação do script vbs

@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%username%">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%password%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs


@rem ///// Enviando comando

@echo sh.SendKeys "%comando1%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs



@rem ///// Iniciando a sessão de telnet

@start /realtime telnet.exe %ip%
@cscript //nologo telnet.vbs
@del /q telnet.vbs
@call killtelnet.bat

O conteúdo do killtelnet.bat é esse:

"C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs

C:/"Arquivos de programas"/USD/wait.exe"

Bom, eu preciso fazer o seguinte... resetar meu modem, e após isso acontecer, preciso que o bat feche, mas após alguns segundo (50 por exemplo:cool:). Pesquisei sobre o comando sleep mas não encontrei quase nada. E não entendi muita coisa desse script aí acima... rs

Gostaria muito que me ajudasse, pois preciso resolver esse problema logo.

Agradeço desde já.:D

Editado por Goliathvv
Utilize a tag [code] para destacar o trecho de código e tornar o texto mais legível. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Nínguem??? Por favor galera, sei que tem gente ai que sabe isso... me ajudem por favor!!! Please!!! rs..

    Att.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    O script já resseta o modem? Só o que falta é fazer a pausa de 50s?

    O WScript é o host do script VBS. Sleep é o método que faz a thread "dormir". Ela aceita um parâmetro, que é o tempo em milissegundos. Então, põe uma chamada no .vbs de "WScript.Sleep 50000" antes do .vbs finalizar.

    Ficaria assim:


    @rem ////// Edite as linhas abaixo com os seus dados

    @set ip=10.1.1.1
    @set username=admin
    @set password=admin
    @set comando1=reboot


    @rem ///// Não edite as linhas abaixo:

    @rem ///// Criação do script vbs

    @echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.v bs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%username%">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%password%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs


    @rem ///// Enviando comando

    @echo sh.SendKeys "%comando1%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs

    REM -- Incluída a pausa de 50s no fim do script que resseta o modem
    @echo WScript.Sleep 50000>>telnet.vbs



    @rem ///// Iniciando a sessão de telnet

    @start /realtime telnet.exe %ip%
    @cscript //nologo telnet.vbs
    @del /q telnet.vbs
    @call killtelnet.bat

    Deve fazer o que você quer...

    JP

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Vou tentar... o que acontece é o seguinte... o modem parece que reseta sim, porém, o killtelnet.bat não fecha... eu só consigo usa se eu fechar ele manual, senão o programa que chama ele trava...

    Analisando o que você escreveu...

    Essa parte sei o que é... ele já "logou" no modem, e está enviando o comando reboot pela variável (ou parâmetro) comando1.

    @rem ///// Enviando comando

    @echo sh.SendKeys "%comando1%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs

    Agora isso que você escreveu... eu faço esperar 50 segundos para passar para a próxima parte... é isso?

    REM -- Incluída a pausa de 50s no fim do script que resseta o modem
    @echo WScript.Sleep 50000>>telnet.vbs

    Isso aqui eu não entendi o que faz pra te falar a verdade... me explique por favor...?

    @rem ///// Iniciando a sessão de telnet

    @start /realtime telnet.exe %ip%
    @cscript //nologo telnet.vbs
    @del /q telnet.vbs
    @call killtelnet.bat

    Então meu problema é maior (eu acho) em fechar esse killtelnet.bat.... porque seu eu fechar ele manualmente o programa dará continuidade

    O conteúdo do killtelnet.bat é esse:

    C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs
    C:/"Arquivos de programas"/USD/wait.exe

    Eu havia pensando antes em fazer o seguinte.... depois da linha wait eu dar um "sleep 50000" (só simulando, rs) e então forçar o fechamento do killtelnet.bat... será q isso resolveria? porque pelo que entendi o seu código inserido simplesmente espera 50seg para passar pra parte seguinte (@rem ///// Iniciando a sessão de telnet), não é mesmo?

    Desde já agradeço a atenção... se puder continuar a tentar me ajudar... quando eu chegar em ksa vou colocar esse seu código, mas acho que não vai funcionar nao... ou estou errado ao interpretar os código?

    Att.

    Editado por Goliathvv
    Utilize a tag [code] para destacar o trecho de código e tornar o texto mais legível. Obrigado.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Vou comentar o que faz cada parte do "código":

    - cria e seta valores para as variáveis que serão usadas no restante do programa. Quem fez o .bat aí foi caprichoso, e fez isso só para facilitar a distribuição. Assim, você só altera os dados, sem precisar meter a mão no "código" em si.


    @rem ////// Edite as linhas abaixo com os seus dados

    @set ip=10.1.1.1
    @set username=admin
    @set password=admin
    @set comando1=reboot

    - esse trecho cria um arquivo chamado "telnet.vbs" com instruções que serão "enviadas" para o telnet. Essas chamadas de sh.SendKeys simulam como se o usuário tivesse digitado o texto do parâmetro. O "~" é como se o usuário tivesse pressionado o ENTER.


    @rem ///// Não edite as linhas abaixo:

    @rem ///// Criação do script vbs

    @echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.v bs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%username%">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%password%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs

    @rem ///// Enviando comando

    @echo sh.SendKeys "%comando1%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs

    REM -- Incluída a pausa de 50s no fim do script que resseta o modem
    @echo WScript.Sleep 50000>>telnet.vbs

    Uma vez criado o script acima, ele executa o telnet e chama o script que vai mandar as instruçoes para o telnet.

    Só que o script não finaliza o telnet amigavelmente. Então ele chama o killtelnet.bat para finalizá-lo.


    @rem ///// Iniciando a sessão de telnet

    @start /realtime telnet.exe %ip%
    @cscript //nologo telnet.vbs
    @del /q telnet.vbs
    @call killtelnet.bat

    Esses dois programas existem em seu computador (nesse caminho)? :

    "C:/"Arquivos de programas"/USD/afskillproc.exe

    C:/"Arquivos de programas"/USD/wait.exe"

    O primeiro deveria matar o processo "telnet.exe".

    Se não estiver funcionando, você pode tentar finalizar o telnet amigavelmente. No lugar onde pus a pausa, tenta por isso aqui. Vai mandar um "escape" para o telnet (Ctrl-]) e depois dar o comando para finalizar (quit).


    @echo sh.SendKeys "^]" >>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "quit">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs

    Daí nem precisa por o Sleep de 50 segundos.

    Desconfio que você não tem esse afskillproc.exe no diretório "C:/"Arquivos de programas"/USD. (aliás, que sintaxe maluca... Windows com "/" ao invés de "\" e com as aspas tudo bagunçadas! Mas mesmo assim ele chamaria a aplicação, caso exista o tal executável nessa pasta.

    JP

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • cara, mais uma vez muito obrigado... chegando em ksa hj a noite da facul eu vou mexer e tentar entender... e por favor, olhe minha resposta amanha... cara, você é 10... muito obrigado mesmo pela atenção!!!

    Att.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Bom, vamos lá...

    com o código assim:

    @rem ****************************************
    @rem * * Script reset modem router * *
    @rem * * [URL="http://www.brazukas.org"]www.brazukas.org[/URL] * *
    @rem * * por: willB * *
    @rem ****************************************


    @rem ////// Edite as linhas abaixo com os seus dados

    @set ip=10.1.1.1
    @set username=admin
    @set password=admin
    @set comando1=reboot


    @rem ///// Não edite as linhas abaixo:

    @rem ///// Criação do script vbs

    @echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%username%">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%password%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs


    @rem ///// Enviando comando

    @echo sh.SendKeys "%comando1%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs

    REM -- Incluída a pausa de 50s no fim do script que resseta o modem
    @echo WScript.Sleep 50000>>telnet.vbs



    @rem ///// Iniciando a sessão de telnet

    @start /realtime telnet.exe %ip%
    @cscript //nologo telnet.vbs
    @del /q telnet.vbs
    @call killtelnet.bat

    Não funcionou...

    E assim..

    @rem ****************************************
    @rem * * Script reset modem router * *
    @rem * * [URL="http://www.brazukas.org"]www.brazukas.org[/URL] * *
    @rem * * por: willB * *
    @rem ****************************************


    @rem ////// Edite as linhas abaixo com os seus dados

    @set ip=10.1.1.1
    @set username=admin
    @set password=admin
    @set comando1=reboot


    @rem ///// Não edite as linhas abaixo:

    @rem ///// Criação do script vbs

    @echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%username%">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "%password%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs


    @rem ///// Enviando comando

    @echo sh.SendKeys "%comando1%">>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs


    @echo sh.SendKeys "^]" >>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "quit">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs
    @echo sh.SendKeys "~">>telnet.vbs
    @echo WScript.Sleep 500>>telnet.vbs



    @rem ///// Iniciando a sessão de telnet

    @start /realtime telnet.exe %ip%
    @cscript //nologo telnet.vbs
    @del /q telnet.vbs
    @call killtelnet.bat

    Tbem nao funcionou...

    Bom, o programa afskillproc.exe tem ele sim... sobre a sintaxe eu nao sei o que falar...

    bom, acontece o seguinte, a tela do telnet.bat fecha, mas a janela do killtelnet.bat não... será q não deveria colocar um comando na janela do killtelnet.bat pra manda ela fechar depois de uns 50 seg (esse tempo é pra meu modem já ter reconectado...), depois da linha que chama o programa wait.exe???

    Bom, aguardo uma ideia sua fariajp.. ou de qq outro que saiba como me ajudar... rs

    T+

    Editado por Goliathvv
    Utilize a tag [code] para destacar o trecho de código e tornar o texto mais legível. Obrigado.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Cara, o killtelnet.bat chama isso aqui:

    "C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs

    C:/"Arquivos de programas"/USD/wait.exe"

    O primeiro deve matar não amigavelmente o telnet. O segundo faz ele dar uma pausa, de sabe deus quanto tempo... Tenta tirar esse wait dai e ver se ele não termina o bat normalmente.

    JP

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Cara, o killtelnet.bat chama isso aqui:

    "C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs

    C:/"Arquivos de programas"/USD/wait.exe"

    O primeiro deve matar não amigavelmente o telnet. O segundo faz ele dar uma pausa, de sabe deus quanto tempo... Tenta tirar esse wait dai e ver se ele não termina o bat normalmente.

    JP

    JP, funcionou quase!!!! uyahyahyua

    Bom, eu tirei a linha do wait.exe... beleza, ele resetou, e fechou, mas agora tenho um outro problema... vou te explicar em qual aplicação estou usando isso..

    Bom, achei um programa na net pra baixar automatico rapidshare, megaupload, etc... existe um agendador nesse programinha q fiz assim... quando ele tenta obter um link pra download e não consegue, ele executa um programa, no meu caso ele chama o telnet.bat pra poder resetar o modem e pegar um novo IP, assim conseguindo baixar o arquivo... so que meu modem demora uns 50 seg pra conectar novamente, então ao tirar o wait.exe, a tela fecha, então ele tenta pegar o IP novamente e como nao consegue reboota o modem novamente....

    O que preciso agora então é fazer com que, após a linha

    "C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs"

    eu coloque um tipo de sleep 50000 pra que só quando ele fechar (somente após os 50 seg) o programa tente pegar novamente o link, aí ja deu tempo do modem conectar novamente (o modem é roteado).... sacou???

    É possível fazer isso não é?!?!? diz que sim, por favor... rsrs...

    E novamente, muuuuito obrigado... você já ajudou bastante cara...

    Aguardo uma posição sua.

    Att.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Põe isso aqui depois da linha "@call killtelnet.bat"


    @echo WScript.Sleep 50000 >> telnet.vbs
    @cscript //nologo telnet.vbs
    @del /q telnet.vbs

    Ele vai criar o telnet.vbs novamente só com a instrução de pausa por 50 segundos, rodar esse script e apagá-lo.

    JP

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • uyhauyahyuahayuhayuahayuahayuhayuhyuahauyahuayhauyhauyahuyahauyhauyha

    uyhauyahuyahuayhauyhauyhayuah!!!!!!!!!!!!!!!!!!!!!!!!!!

    JP, lhe devo quase que minha vida!!!! uyahyuahayuhyua... cara, te garanto que aqui na minha região muita gente vai te dever uma cara..... conseguiu velho!!!! valeu mesmo... rsrs...

    Muito obrigado cara... continuarei testando, e se der pau te chamo de novo hein...rsrs..

    Abraço cara...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Às ordens!

    Em tempo, esses ".Sleep 500" tem tudo para dar pau :) A não ser que você tenha MUITA certeza de que os 500ms são suficientes, pode dar pau a qualquer momento.

    JP

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Aguém poderia deixar este Script ".BAT" hospedado num Rapidshare para que possui 500G Baixar..... Agradeceria se alguém puder ajudar! ;)

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Para quem for copiar e criar um bat com este script, so preste atenção na linha logo abaixo de "Criação do script vbs", foi dado um espaço na extensão, em vez de estar ".vbs" ela esta ".v bs" nesta linha veja :

    "@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.v bs"

    dae o baguio não vai.

    hhehehehe, valeu pelo script, abraço a todos.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Tô com um problema besta nesse script! Uso o JDownloader e coloco pra usar o bat quando alguma conexão fica instavel ou para não aguardar o tempo do rapidshare. Funcionou (demorou 6 minutos para o JD verificar o ip novo, mas funcionou), entretanto, no final o telnet.exe fica aberto na tela e eu gostaria de fecha-lo pelo script. O que faço??

    Screen:

    batk.th.jpg

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Tava procurando feito louco um script que funcionasse... ACHEI!!! ^^

    Só estou com a mesma dúvida do Ar2r...

    Mas de boa valeu!

    []'s

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×