2017-04-12 482 views
0

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

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库获取输出或文本文件内容?

回答

0

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

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

+0

感谢这个建议,它应该适用于我的情况。我有很多Windows机器,这就是为什么我尝试使用内置解决方案解决这种情况的原因,其中不需要额外的配置。如果我不会找到任何方法与wmi一起完成,那么我可能会使用这个解决方案:) – Garzum

相关问题