0
我試圖用ruby Net :: Telnet來連接Windows 2008並執行一些命令。但它失敗了。紅寶石遠程登錄到Windows 2008,執行命令錯誤
如果執行
tn = Net::Telnet::new("Host"=>"walnutserver","Port"=>2300,"Prompt"=> /C:.*>/)
tn.login("user","pass")
tn.cmd("dir")
tn.cmd("dir")
第一tn.cmd("dir")
是成功的,但第二個罰球exceptions.And那麼後續的命令都失敗了。實驗後,我發現任何Windows命令都會導致這種情況。
例外:
Timeout::Error: timed out while waiting for more data
from c:/troy/data/chef/chef-client11/chef/embedded/lib/ruby/1.9.1/net/telnet.rb:558:in `waitfor'
from c:/troy/data/chef/chef-client11/chef/embedded/lib/ruby/1.9.1/net/telnet.rb:697:in `cmd'
from (irb):20
from c:/troy/data/chef/chef-client11/chef/embedded/bin/irb:12:in `<main>'
使用sock.sysread()方法來讀取響應,我發現,終端被阻斷,顯示dir\r\n0x00More?
BUF如果執行
tn = Net::Telnet::new("Host"=>"walnutserver","Port"=>2300,"Prompt"=> /C:.*>/)
tn.login("user","pass")
tn.cmd("ls")
tn.cmd("uname")
It't正常運行。 ls
,uname
是安裝在目標機器上的主廚帶來的一些linux命令。
紅寶石版本:紅寶石1.9.3p286(2012年10月12日)[I386-的mingw32]
我發現別人 問#1同樣的問題,但他並沒有得到解決。 http://www.ruby-forum.com/topic/1516840
需要你的幫助。
如果你不需要這個問題的進一步的幫助,選擇一個正確的答案。 – biphobe 2013-05-14 09:23:17