【发布时间】:2015-08-13 16:35:49
【问题描述】:
我正在使用 Python 2.7.6 和 Paramiko 模块(在 Linux 服务器上)连接到 Windows 服务器并发送一些命令并获取输出。我有一个连接函数,它接受远程 Windows 服务器的 IP、用户名和密码,当发生这种情况时我会得到一个 sshobj。我的问题是如何使用它发送远程呼叫?
如果是本地系统,我只会说“os.system”,但不确定远程调用。有人可以帮忙吗?
我的代码如下所示: sys.path.append("/home/me/code")
import libs.ssh_connect as ssh
ssh_obj = ssh.new_conn(IP, username, password)
stdin, stdout, stderr = ssh_obj.exec_command("dir") #since the remote system I am SSHing into is Windows.
我的“new_conn”看起来像这样:
import paramiko
def new_conn(IP, username, password):
ssh_obj = paramiko.SSHClient()
ssh_conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_conn.connect(IP, username, password), timeout=30)
return ssh_obj
我从 stdin、stdout 和 stderror 得到的只是“活动的;1 个打开的频道和一些信息,如 ChannelFile、aes 等..)。
我希望在我的 Linux 上看到来自 Windows 的“dir”输出..
尝试了“stdout.read()”和“stdout.readlines()”,但前者出现了“stdout”,而后者出现了“[]”!
谢谢!
【问题讨论】:
-
JFYI - 我在 Linux 服务器上执行上述代码并将它们发送到 Windows 服务器 .. 因此使用“dir”命令。不过我想在 Linux 服务器上处理它们..
-
如果我将“dir”替换为“ipconfig”,它可以正常工作。我想知道如何使“dir”工作..
标签: python linux windows paramiko