使用pexpect(python)通过telnet连接无法使用'powershell'

时间:2015-04-13 09:35:57

标签: python powershell telnet

尝试发送' powershell'通过telnet命令(从linux到windows)并在Timeout上失败。 我通过telnet发送的其他命令,例如' dir'命令没问题。

这是我使用的代码的一部分:

p = host.pobject()
    p.cmd = cmd
    child = self.connection or self.OpenTelnetConnection()
    t = stopwatch.Timer()
    try:
        child.sendline('{0}\r'.format(cmd))
        child.expect(self.prompt, timeout=timeout)
        # output = child.before
        output = child.after
        if stdout:
            sys.stdout.write(child.after)
            sys.stdout.flush()
        child.sendline('echo %errorlevel%\r')
        child.expect(self.prompt)
        p.rc = int(child.after.split("\r\n")[1])
        p.runtime = t.stop()
        if p.rc:
            p.stderr = output.split("\r\n")[1:-1]
        else:
            p.stdout = output.split("\r\n")[1:-1]
        return p
    except Exception, e:
        self.report.Error("Failed to run command {0}. {1}".format(cmd, e),
                          exception=["TestFailure"], testName="WindowsHost")

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是将powershell命令作为第一个参数发送。 例如,如果我想将'host'命令发送到powershell,我将发送: 'powershell host'