Winapi 使用python中的pywin32从远程连接访问本地Outlook应用程序

Winapi 使用python中的pywin32从远程连接访问本地Outlook应用程序,winapi,pywin32,Winapi,Pywin32,我希望在远程windows服务器上运行pywin32 API和python,以操作位于本地计算机(我从该计算机连接到远程服务器)上的Microsoft套件(Outlook等) 以下代码正在使用win32com包来分派Outlook应用程序: import win32com.client as wc import os win_local_path = os.path.join(r"\\local_machine", "C") os.chdir(win_local_path) outlook

我希望在远程windows服务器上运行pywin32 API和python,以操作位于本地计算机(我从该计算机连接到远程服务器)上的Microsoft套件(Outlook等)

以下代码正在使用win32com包来分派Outlook应用程序:

import win32com.client as wc
import os

win_local_path = os.path.join(r"\\local_machine", "C")
os.chdir(win_local_path)

outlook = wc.Dispatch("Outlook.Application").GetNamespace("MAPI")
这会失败,因为win32客户端在运行python的服务器上查找Outlook应用程序,而不是在Outlook应用程序所在的本地计算机上。使用例如os.listdir(win_local_path)定位本地计算机时没有问题


有没有办法告诉pywin32客户端在本地系统上查找应用程序?

您需要准备两个Python脚本,一个在远程计算机上,另一个在本地计算机上

from paramiko.client import SSHClient

client = SSHClient()
client.load_system_host_keys()
client.connect('remote machine ip', username='your_user', password='very_secret')
stdin, stdout, stderr = client.exec_command('python /home/your_user/your/path/to/outlook.py')
首先,从远程计算机连接到本地计算机

from paramiko.client import SSHClient

client = SSHClient()
client.load_system_host_keys()
client.connect('remote machine ip', username='your_user', password='very_secret')
stdin, stdout, stderr = client.exec_command('python /home/your_user/your/path/to/outlook.py')
其次,上面的代码将执行用于打开outlook的本地.py代码 应用程序

第三,您只需要将问题中编写的代码保存在本地计算机上

from paramiko.client import SSHClient

client = SSHClient()
client.load_system_host_keys()
client.connect('remote machine ip', username='your_user', password='very_secret')
stdin, stdout, stderr = client.exec_command('python /home/your_user/your/path/to/outlook.py')

参考:

@Chuck666嗨,这个答案有用吗?如果您有任何问题,请告诉我。有没有不使用SSH的方法可以做到这一点?SSH端口未在atm上打开。