尝试发送' 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")
答案 0 :(得分:0)
我找到的解决方案是将powershell命令作为第一个参数发送。 例如,如果我想将'host'命令发送到powershell,我将发送: 'powershell host'