1

我正在尝试从 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
4

2 回答 2

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(">")

我希望这会奏效。

于 2013-05-16T05:22:37.453 回答
0

我可以建议一种简单的方法来调试问题。您写道,可以手动登录。如果是这样,请在使用 Wireshark 手动登录时嗅探 telnet 消息。启动脚本后再次嗅探。比较 2 条迹线。比较之后,您应该能够知道您的脚本 telnet 消息缺少什么。

于 2013-05-15T08:10:30.520 回答