2

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

4

5 回答 5

3

这有点像雷区,但是做到这一点的“正确”方法(python 控制没有 python 的远程 win 机器)是使用用于 WMI 或 WRM 的库。

有一个由 Tim Golden(他是 Python-on-Windows 世界的权威)的 WMI 模块、来自 Dell 的 WSMAN 库和一个pywinrm 模块。选择你的毒药——它们都有自己的弱点(必须先在服务器上启用 WRM,然后才能使用它,尽管这不需要任何额外的软件,它都是 Windows;WMI 在 DCOM 上工作,所以你会必须弄清楚 DCOM 安全性等)。

于 2013-09-21T12:16:08.183 回答
2

您可以ssh按照khagler 的建议使用它。但我更喜欢在两边都安装 Python,因为 Python 让我在远程端有更多的控制权。

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

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

于 2013-09-03T07:12:21.413 回答
2

你可以在Windows机器上安装一个ssh服务器(听说freeSSHd不错),然后使用paramiko模块与之通信。

于 2012-12-01T08:46:14.737 回答
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”只是计算机名称)

于 2017-09-06T10:45:10.833 回答
0

您可以尝试将Pyro4 之类的东西与subprocess.popen.

Pyro4 是一个远程方法调用框架,subprocess.popen用于创建底层操作系统进程。

于 2012-11-29T14:08:27.120 回答