Python:使用 wmi 远程启动可执行文件

问题描述 投票:0回答:3

我正在尝试使用 wmi 模块在 Windows 上远程运行可执行文件。它建立了连接,但我认为我的进程线不正确,因为当我检查服务器时,可执行文件肯定没有运行。你们能帮我解决语法问题吗?

import wmi, time
ip = 'xx.xx.xx.xxx'
username = "user"
password = "password!"
from socket import *
print "Establishing connection to %s" %ip
connection = wmi.WMI(ip, user=username, password=password)
print "Connection established"
print "Starting IO"
connection.Win32_Process.Create(CommandLine='cmd.exe C:\Users\Public\Desktop\Auto_IOX.exe')
time.sleep(60)
python windows wmi executable
3个回答
5
投票
import wmi, time
ip = 'xx.xx.xx.xxx'
username = "user"
password = "password!"
SW_SHOWNORMAL = 1
from socket import *
print "Establishing connection to %s" %ip
c = wmi.WMI(ip, user=username, password=password)
process_startup = c.Win32_ProcessStartup.new()
process_startup.ShowWindow = SW_SHOWNORMAL
process_id, result = c.Win32_Process.Create(CommandLine="C:\User\Administrator\Desktop\runIOX_auto.bat",ProcessStartupInformation=process_startup)
if result == 0:
  print "Process started successfully: %d" % process_id
else:
  raise RuntimeError, "Problem creating process: %d" % result

我设法通过创建一个批处理文件来解决这个问题(在 DDay 的帮助下),该批处理文件运行我需要的所有内容并将其放在桌面上然后运行它。


4
投票

看看 Tim Golden 的tutorial。您没有使用 Win32_Process.Create 方法返回的信息。

process_id, result = c.Win32_Process.Create(
  CommandLine="notepad.exe",
  ProcessStartupInformation=process_startup
)

因此,您可能会错过进程 ID 和启动该远程进程的结果。


-2
投票

我对 Windows 10 桌面使用相同的方式。我可以确认进程正在远程机器上运行,但控制台窗口未打开。有什么想法吗?

© www.soinside.com 2019 - 2024. All rights reserved.