我正在尝试从Linux远程登录到Windows PC,但它显示错误“登录失败”。
这是我的Python脚本。我正在使用pexpect
模块。我也试过telnetlib
,但同样的错误:
import os
import pexpect,time
telconn = pexpect.spawn('telnet 192.168.0.105')
telconn.logfile = open("/tmp/telnetlog", "a")
time.sleep(30)
print "connected"
telconn.expect(':')
telconn.sendline("user" + "\r")
#time.sleep(10)
print "connected user"
telconn.expect(':')
password = "user@123"
#print password
telconn.sendline(password + "\r")
time.sleep(60)
#print "connected password"
错误:
Connected to 192.168.0.105.
Escape character is '^]'.
Welcome to Microsoft Telnet Service
login: user
password: user@123
The operation completed successfully.
Login Failed
答案 0 :(得分:1)
@vish 根据Marcin,您可以使用wireshark调试问题。您只是尝试下面提到的代码,因为我已经遇到了同样的问题,我得到了解决方案
import pexpect
import time,sys
telconn = pexpect.spawn('telnet 192.168.0.105')
time.sleep(20)
telconn.logfile = sys.stdout
telconn.expect(":")
time.sleep(20)
telconn.send("user" + "\r")
telconn.expect(":")
telconn.send("user@123" + "\r")
telconn.send("\r\n")
time.sleep(20)
telconn.expect(">")
我希望这会奏效。
答案 1 :(得分:0)
我可以建议一种简单的方法来调试问题。您写道,可以手动登录。如果是这样,请在使用Wireshark手动记录时嗅探telnet消息。启动脚本后再次嗅探。比较2条痕迹。在比较之后,您应该能够告诉脚本telnet消息中缺少的内容。