2010-04-29 73 views
0

我正在IronPython中编写一个小型实用程序,以使用使用WMI的管理类在远程计算机上安装应用程序。远程计算机的本地计算机的UNC路径是什么?

现在,脚本将在Machine_A上的Machine_B上安装一个应用程序,只要在目标机器(本例中为Machine_B)的本地驱动器上有msi文件,它就可以正常工作。我希望能够对主机(Machine_A)机器上的.msi文件执行相同的操作。

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() 

问题:

[机器A] - 我在哪里运行脚本,并要承载.msi文件
[机器B] ---我想要的安装应用程序

那么,如何定义本地机器的UNC路径? 将会是什么inParams [“PackageLocation”] = ??

回答

2

为什么不让脚本将文件复制到目标计算机的管理共享C $,然后在完成后可选择删除它?从本地.msi进行安装的速度要远远超过.msi数据库的网络过度读取速度。

+0

所以,现在的问题是:在复制功能,我如何把本地文件的路径,我的脚本将在远程机器上执行,所以它应该能够确定本地计算机的路径。 \\机器名\驱动器\路径不起作用。 谢谢! – 2010-04-29 05:13:19

+0

它看起来不像你的脚本在远程机器上执行。您的脚本正在MachineA上执行并向MachineB发出远程WMI请求。无论如何,'\\ machinename \ sharename \ path'是正确的格式,请确保MachineA上启用共享,MachineB的计算机帐户具有对共享和文件的读取权限等。 – 2010-04-29 22:24:37

相关问题