none
VB x VBA x Telnet RRS feed

  • Pergunta

  • Pessoal, bom dia!!

    Estou precisando de uma força. Não sou desenvolvedor, trabalho com infraestrutura e servidores, apesar de conhecer um pouco de scripts adiminstrativos e tb não ser completamente ignorante no assunto. Estou com um problema que algumas máquinas estão perdendo suas contas no domínio e precisam ser pontualmente readicionadas. Não consigo conexão com essas máquinas, exeto por telnet, utilizando o usuário Administrator local. Estou tentando fazer um mini programa / script em Visual Basic ou vbs que conecte na máquina utilizando WINSOCK. Então eu conecto na maquina por protocolo telnet (nativo do xp) e envio comandos (senddata) para a estação. Estes comandos poderiam ser nativos do windows de adição ao domínio ou poderia utilizar objects de vb. Detalhe, o compilador que possuo e o Visual Studio 2005, que parece ter a API de Winsock diferente do VB6. Alguém poderia começar a me dar uma luz?

    Segue mais ou menos o que preciso:


    Um form contendo um textbox para o usuário digitar o nome da estação com 14 dígitos, 2 textbox com usuário e senha que serão utilizados para adicionar no domínio, um combobox com as opções de domínios, e um botão "conectar". A resposta de sucesso ou falha seria exibida em um textbox multline.
    Apos o usuário clicar em "Conectar" a conexão é feita com a estaçao utilizando o usuário Administrator e a senha XXXXX (que são locais), e tenho a opçao de enviar comandos para o local (sem utilizar SendKey, rs).
    O combobox será utilizado para um "case" de opções de acordo com o domínio escolhido e será utilizado uma variárivel que guardou o nome do usuário e senha do domínio.

    Se der para fazer essa conexão via telnet e enviar comandos via VBS, sem utilizar sendkey, seria ainda melhor.. valeu!

     

     

    Galera acho que é isso.

    Muito obrigado!

    domingo, 10 de fevereiro de 2008 12:55

Todas as Respostas

  • Ola Sergio,

    Bem vamos lá você tem algumas maneiras de fazer isso, criando um cliente para conectar ao wmi da maquina remota nao vejo necessidade disto desde que já é possivel via vbs fazer isso, essa seria  a segunda opção a terceira seria via telnet como você esta dizendo para precisaria de uma linguagem interativa que interagisse com o telnet, eu recentemente testei o expect para windows e gostei muito no post abaixo eu postei uma dúvida de outro usuário não sei se será por ai a solução do seu problema.

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=2863792&SiteID=29

    Num outro post seu eu respondi sua dúvida conectando via vbs usando wbemlocator

    http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=2813719&SiteID=29

    ou a mais árdua criar um cliente via winsock como vc mesmo disse, aprender a RFC do protocolo de conexão ao WMI enfim fazer do zero, você pode utilizar C/C++ ou o proprio VBS. Neste post tem um exemplo de vbs utilizando winsock

    http://forums.microsoft.com/technet-br/ShowPost.aspx?PostID=2810333&SiteID=29

    agora em C não entrarei em detalhes porque acho que você vai ficar com a segunda opção conectar usando wbemlocator dp próprio WMI e vbs

    Espero ter ajudado.

    Atenciosamente.

    Obs: se o post lhe ajudou marque-o




    domingo, 2 de março de 2008 19:36
  • Olá pessoal,



    eu diria que vocês estão tentando matar formigas com balas de canhão. Se vocês perguntassem a qualquer engenheiro Microsoft, ele tentaria, antes de mais nada, descobrir porque as máquinas estão saindo do domínio.

    Vamos ao checklist básico:


    1) Há alguma coisa diferente no log das estações que saem do domínio? E nos DCs?

    2) Os usuários estão usando computadores com direitos administrativos? Se estão, porque?

    3) Como foi feito o deployment das estações? Foi duplicação simples de HD?

    4) Há alguma falha do Windows associada ao fato da máquina sair do domínio (ex, uma tela azul ou alguma falha que obrigue a voltar o micro usando um ponto de restauração)?

    Não que não seja possível adicionar uma máquina ao domínio à distância... o procedimento mais simples seria via psexec ou comando WMI remoto, e nem precisaria desenvolver nenhum aplicativo específico pra isso. O problema é que eu vejo que você está tentando resolver o problema da forma errada.


    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    terça-feira, 4 de março de 2008 11:11
    Moderador