使用python在远程Windows机器上运行命令

时间:2012-11-29 14:04:11

标签: python windows remote-debugging configuration-management

这次我问的是在远程Windows机器上运行命令。 让我在这里更具描述性。
**我有一台机器上安装了python,我想运行一些powershell和cmd命令,或者我想将cmd文件发送到远程Windows机器,以便它可以在那里运行,每个输出像错误,stdout我可以得到回到射击机。
就像我想从python远程管理远程机器一样。如果可能的话,我可以使用python同时在多台机器上远程启动命令 请记住,其他系统没有安装任何python。 **

5 个答案:

答案 0 :(得分:3)

这是一个雷区,但“正确”的方式(python控制远程win机器没有python)正在使用WMI或WRM库。

WMI module by Tim Golden(谁是Python-on-Windows世界的权威),WSMAN library from Dellpywinrm module。选择你的毒药 - 他们都有自己的弱点(必须先在服务器上启用WRM才能使用它,虽然这不需要任何额外的软件,但它都是Windows的存货; WMI适用于DCOM,所以你会必须弄清楚DCOM安全等等。)

答案 1 :(得分:2)

您可以在Windows计算机上安装ssh服务器(我听说freeSSHd很好),然后使用paramiko模块与之通信。

答案 2 :(得分:2)

您可以使用ssh作为khagler建议。但是我更喜欢在双方都安装Python,因为Python在远程方面给了我更多的控制权。

例如,ssh只在两台计算机之间提供单个通道。这意味着我必须在远程端折叠stdoutstderr以通过网络发送它。使用远程Python服务器,我可以运行更复杂的脚本,我可以准确控制我想要公开的内容(如果允许远程访问可以执行任何命令)并且错误处理更加简单。

或者两者的结合:在远程计算机上安装Python,然后使用ssh启动Python脚本。然后,您可以使用自定义协议与其进行通信,而不受命令行/ shell接口的限制。您甚至可以使用scp远程安装新脚本。

答案 3 :(得分:1)

知道这是一个很老的帖子,

我现在能想到的最佳选择是使用PowerShell进行窗口远程管理。

下面是如何使用PowerShell在远程PC中执行命令以及如何在Python中执行命令。

PowerShell启动服务:

Get-Service -ComputerName aaa0001 -Name Tomcat9 | Start-Service

现在,接下来是如何使用Python执行此操作,

import subprocess

subprocess.call(["C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe","Get-Service -ComputerName aaa0001 -Name Tomcat9 | Start-Service"])

此示例显示如何在Windows中启动Tomcat9 Windows服务。 (“aaa0001”只是计算机名称)

答案 4 :(得分:0)

您可以尝试将Pyro4subprocess.popen结合使用。

Pyro4是远程方法调用的框架,subprocess.popen用于创建底层OS进程。

相关问题