• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

cro

plink.exe c#

1 mensagem neste tópico

Viva,

o google não me ajudou nesta. :)

Preciso de me ligar a switch HP  e retirar de lá todos os pc's que estão ligados.

Para isso tenho de me ligar por telnet ao switch, executar um commando e redirecionar o output para mim.

Uso o Putty em versão 'command line' ( plink.exe) mas não estou a conseguir escrever os comandos.

Alguém fez algo semelhante ?

 

 string str = string.Empty;
            Process proc = new Process();
            proc.StartInfo.FileName = "c:\\plink.exe ";
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.Arguments = " -telnet " + IPAddress;
     // -m c:\\mmm.txt";
       //     proc.StartInfo.Arguments = "show time";
          
           
            proc.StartInfo.RedirectStandardInput = true;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.RedirectStandardError = true;
            proc.StartInfo.UseShellExecute = false;
       

            if (proc.Start())
            {

               // Thread t = new Thread(new ThreadStart(cucu));
             //   t.Start();
           //     t.Join();
            
                StreamWriter writer = new StreamWriter(proc.StandardInput.BaseStream); // proc.StandardInput;
               // writer.AutoFlush = true;
            //    StreamReader reader = new StreamReader(proc.StandardError.BaseStream); // proc.StandardError; 

                SendKeys.SendWait("{Tab}"); // PARA TIRAR O BANNER DA FRENTE
                proc.StandardInput.WriteLine("show time"); // TENTATIVA 1 
          //      proc.StandardInput.WriteLine("^M");
         //       writer.Write("show time");   // TENTATIVA 2  FAIL
                StreamReader sr = new StreamReader(proc.StandardOutput.BaseStream);
                string line = "";
  
                int count = 0;

                // ...

                while ((line = sr.ReadLine()) != null)
                {
                   // if (count > 50)
                  //      break;
                  //  else
                 //       count++;
                    proc.StandardInput.WriteLine("m");
                    Console.WriteLine("" + line);
                }
(...)

EDIT: Já dá ao copiar para aqui o código reparei que tinha um erro. Fica aqui para a posteridade de qualquer maneira, se quiserem. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora