【发布时间】:2012-01-19 19:26:41
【问题描述】:
为可能的远程系统创建安装程序,这样如果他们没有安装任何东西,它将在他们的桌面上启动 autorun.exe(确保给他们链接很容易,他们可以点击开始并运行.. . 但如果为他们完成,这将是 100% 更好!)
这是我一直在使用的模型,我应该提到我正在 Windows 7 和 XP 机器之间进行测试,尽管我认为这没什么大不了的。
import wmi
import win32com.client
def Copy_Program(computer=None, environment="Production"):
Oracle_install = r'\\server1\Install\Oracle\Oracle9i_Disk1\autorun\autorun.exe'
""" BELOW PROCESS SHOWS UP IN TASKMANAGER, but I NEED IT TO BE INTERACTIVE.
wmi = win32com.client.GetObject ("winmgmts:\\\\"+computer+"\\root\\cimv2")
win32_process = wmi.Get ("Win32_Process")
in_parameters = win32_process.Methods_ ("Create").InParameters
in_parameters.Properties_ ('CommandLine').Value = "notepad.exe"
result = win32_process.ExecMethod_ ("Create", in_parameters)
"""
SW_SHOWMINIMIZED = 1
c = wmi.WMI (computer)
startup = c.Win32_ProcessStartup.new (ShowWindow=SW_SHOWMINIMIZED)
pid, result = c.Win32_Process.Create (
CommandLine=Oracle_install,
ProcessStartupInformation=startup
)
if __name__ == '__main__':
Copy_Program(computer = "D02659")
现在正如 Tim Golden 先生在文档中提到的那样...远程连接到另一台机器非常简单...您只需
c = wmi.WMI("REMOTE_COMPUTER")
你走了……
从技术上讲,它确实有效,但由于某种原因它不是交互式的......我也修改了 SW_SHOWMINIMIZED 值,但我似乎无法理解我做错了什么。我有域管理员,所以这不应该是一个问题......特别是因为我同时登录到两个系统......很奇怪。
无论如何,非常感谢您的帮助!
【问题讨论】:
标签: python wmi interactive createprocess