Solved

vbscript to install a .msi file

Posted on 2006-11-30
5
1,193 Views
Last Modified: 2012-05-05
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
0
Comment
Question by:andrew_89
  • 3
  • 2
5 Comments
 
LVL 26

Expert Comment

by:Pber
ID: 18047852
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
 
LVL 1

Author Comment

by:andrew_89
ID: 18047888
How does it know where the .msi lives to execute on the remote machine
0
 
LVL 26

Accepted Solution

by:
Pber earned 500 total points
ID: 18047958
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
 
LVL 1

Author Comment

by:andrew_89
ID: 18048232
Thanks alot that is very helpful !!!!



0
 
LVL 26

Expert Comment

by:Pber
ID: 18048714
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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Question about AD permissions 2 58
Group Policy & Netlogin Services 5 41
AD Replications issues 12 86
How to restore security permissions on a file server 4 39
Organizations create, modify, and maintain huge amounts of data to help their businesses earn money and generally function.  Typically every network user within an organization has a bit of disk space to store in process items and personal files.   …
Recently, I had the need to build a standalone system to run a point-of-sale system. I’m running this on a low-voltage Atom processor, so I wanted a light-weight operating system, but still needed Windows. I chose to use Microsoft Windows Server 200…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now