vbscript to install a .msi file

I am trying to come up with a script to install a .msi file on 100+ machines.
I found the below from activexperts.com but keep getting an rpc error. I know it is becuase I am not using correct syntax....

The error is on line 3.. What should be the value for Set objConnection???

Const wbemImpersonationLevelDelegate = 4
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objConnection = objwbemLocator.ConnectServer _
    ("WebServer", "root\cimv2", "fabrikam\administrator", _
     "password", , "kerberos:WebServer")
objConnection.Security_.ImpersonationLevel = wbemImpersonationLevelDelegate
Set objSoftware = objConnection.Get("Win32_Product")
errReturn = objSoftware.Install("\\atl-dc-02\scripts\1561_lab.msi",,True)
Wscript.Echo errReturn

Thanks for any help
LVL 1
andrew_89Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
PberConnect With a Mentor Solutions ArchitectCommented:
I main msiexec process will end up running under system.  that is the one that needs access to the file.

Thus I copy the msi to the remote machine first (\\machine\c$), then run the script, then remove the file.  I do this all in a batch

The strExe in the StartProcess.vbs would be

strExe = "msiexec /i c:\1561_lab.msi /qb"

I've modified the script slightly to allow me to use command line parameters.





0
 
PberSolutions ArchitectCommented:
Try this one instead (specifically the "Script to Create (Start) a Process on a Computer"):

http://www.computerperformance.co.uk/vbscript/wmi_process_start.htm#Scenario_-_Why_you_need_to_Launch_a_Processes_on_a_Remote_Machine_

Works like a charm
0
 
andrew_89Author Commented:
How does it know where the .msi lives to execute on the remote machine
0
 
andrew_89Author Commented:
Thanks alot that is very helpful !!!!



0
 
PberSolutions ArchitectCommented:
I was also able to get the first script to work, but it you have to mess around with dcom on the PC sourcing the MSI.

On the MSI source
load dcomcnfg
Expand Component Services\Computers\My computer
Right click My Computer and select properties
Select the COM Security TAB
Select  the Edit Defaults of the Access Permissions
Grant System Remote Access.


;new vbs file
strcomputer="some machine"

Const wbemImpersonationLevelDelegate = 3 ;not change to 3 from 4
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objConnection = objwbemLocator.ConnectServer (strComputer, "root\cimv2", , , , "kerberos:" & strComputer)
Wscript.Echo "Error: " & Err.Description
objConnection.Security_.ImpersonationLevel = wbemImpersonationLevelDelegate
Set objSoftware = objConnection.Get("Win32_Product")
errReturn = objSoftware.Install("\\MSIsource\share\some.msi",,True)
WScript.Echo(errReturn)

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.