I am writing a small utility program in IronPython to install applications on remote machine using managementclass which uses WMI.
Now, the script would install an application on Machine_B from Machine_A, it works fine as long as you have the msi file on the local drive of the Target machine (Machine_B, in this case). I want to be able to do same thing with .msi file being on the Host (Machine_A) machine.
network_scope = r"\\%Machine_B\root\cimv2"
scope = ManagementScope(network_scope, options)
scope.Connect()
mp = ManagementPath("Win32_Product")
ogo = ObjectGetOptions()
mc = ManagementClass(scope, mp, ogo)
inParams = mc.GetMethodParameters ("Install")
inParams["PackageLocation"] = r"C:\installs\python-3.1.1.msi"
inParams["AllUsers"] = True
retVal = mc.InvokeMethod ("Install", inParams, None)
print retVal ["ReturnValue"].ToString()
PROBLEM :
[Machine A] --- Where I am running the script, and want to host the .msi file
[Machine B] --- where I want to install the applicationSo, How can I define the UNC path for local machine ? what will b开发者_Python百科e inParams["PackageLocation"] = ??
Why not have your script copy the file to the administrative share C$ of the target machine, then optionally delete it when done? Installing from a local .msi is much faster than over-the-network reads of the .msi database continually.
精彩评论