在远程桌面上执行CMD并接收输出



我正在尝试在远程桌面cmd中执行一个命令。我有那个远程桌面的IP、用户名和密码,我可以通过远程桌面应用程序访问它。我已经尝试使用此代码将"uxm getrole"命令发送到远程cmd,但无法获得cmd的输出。我正在用pyinstaller将这个python文件转换为可执行文件,因为运行此代码的计算机无法安装python,我不知道这是否有问题。

import wmi
from socket import *
ip = ip_address
username = 'username'
password = 'password'
try:
print("Establishing connection to %s" %ip)
connection = wmi.WMI(ip, user=username, password=password)
print("Connection established")
res = connection.Win32_Process.Create(CommandLine='cmd.exe /c uxm getrole')
print(res)
except wmi.x_wmi:
print("Your Username and Password of "+getfqdn(ip)+" are wrong.")
except Exception as e:
print(e)

有没有一种方法可以在不必在远程桌面中创建SSH的情况下接收远程cmd的输出?也许我应该在打开连接时使用子流程库?但我不知道怎么做。

谢谢。

如果您不坚持使用python。您可以使用PsExec执行远程命令。

https://learn.microsoft.com/en-us/sysinternals/downloads/psexec

我终于可以用PsExec和子流程模块做我想做的事情了。我需要将PsExec.exe文件与python文件放在同一文件夹中,代码如下:

import subprocess as sp
try:
res = sp.run(r'psexec -i \IP_ADDRESS -u DOMAINuser -p password cmd /c command', check=True, capture_output=True, shell=True)
print(res.stdout)
except Exception as e:
print(e)

谢谢大家的回答。

最新更新