Forum: Telnet Hangs During Login

315b95cdcac83705c10ea14e239aeaf5?d=identicon&s=25 George Mauer (togakangaroo)
on 2009-06-08 22:48
This is cross-posted on stackoverflow if you want points/nice syntax

I am trying to do some basic scripting using ruby to log in to a windows
machine via telnet and pull some files over using the dos command line
ftp.  When I do this manually everything goes swimmingly but when I try
it via ruby I'm getting an error in the login call.

Here is my test program in its entirety:

    require 'net/telnet'
    tn = Net::Telnet::new("Host"=>"", "Timeout"=>25,
"Output_log"=>"output_log.log", "Dump_log"=> "dump_log.log",
    tn.login("administrator", "xxxxxxx") {}

The contents of output_log don't betray anything as being wrong:

    Connected to
    Welcome to Microsoft Telnet Service
    login: administrator
    Welcome to Microsoft Telnet Server.
    C:\Documents and Settings\Administrator>

Same for the dump_log which has very similar but awkwardly formatted
contents.  When I run the program it sits around for a while and then
outputs the following error:

    PS C:\code\tools\deployment> ruby test.rb
    C:/Ruby/lib/ruby/1.8/net/telnet.rb:551:in `waitfor': timed out while
waiting for more data (Timeout::Error)
            from C:/Ruby/lib/ruby/1.8/net/telnet.rb:685:in `cmd'
            from C:/Ruby/lib/ruby/1.8/net/telnet.rb:730:in `login'
            from test.rb:3

Which leads me to suspect that the telnet class is not recognizing the
command prompt.  I've tried several different regex strings for the
Prompt parameter, including the default and nothing seems to help.
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.