在远程Windows机器上执行命令并在python

时间:2017-04-12 10:37:42

标签: python windows login execute

我想编写一个在远程Windows机器上执行命令的脚本,并从该命令获取输出。问题是,我想在Windows中使用内置软件,所以我不能不幸地使用例如SSH。我找到了“wmi”库,我可以登录到机器并执行命令,但我不知道如何从该命令接收输出。

import wmi

c = wmi.WMI("10.0.0.2", user="administrator", password="admin")
process_startup = c.Win32_ProcessStartup.new()
process_id, result = c.Win32_Process.Create (r'cmd /c ping 10.0.0.1 -n 1 > c:\temp\temp.txt')
if result == 0:
  print("Process started successfully: %d" % process_id)

print(result)

我尝试将输出重定向到文件,但我找不到任何方法来获取文本文件内容。

有没有办法使用wmi或其他python库获取输出或文本文件内容?

1 个答案:

答案 0 :(得分:0)

对于您所描述的应用,您可能会发现RPyC非常合适。它是一个可以连接并发出命令的python远程服务器;它将执行Python可以在目标计算机上执行的任何操作。例如,您可以使用subprocess模块运行Windows命令并捕获输出,然后返回结果。

安全的做法是将远程功能作为服务公开 - 基本上,它只是RPyC可以为您运行的python脚本。但是,您也可以使用RPyC classic mode,这非常类似于直接在远程计算机上运行python会话。只有当您不担心安全性时才应该使用它,因为经典模式可以在远程计算机上执行任何 - 但它对原型设计很有用。