Client Management Suite

 View Only

Installing an Application Using VBScript 

May 13, 2008 05:31 PM

Did you know you can install an application with VBScript using the "Run" method.

Here's a sample script illustrating how we do it (and how we also write return codes to the eventlog):




object.Run(strCommand, [intWindowStyle],[bWaitOnReturn])

'INSTALL MS INTERNET EXPLORER 7 USING VBScript
Set objShell = WScript.CreateObject("WScript.Shell")
spath = objShell.CurrentDirectory

If fso.FileExists(spath & "\IE7-WindowsXP-x86-enu.exe") Then
path = """" & spath & "\IE7-WindowsXP-x86-enu.exe" & """ /passive /norestart /update-no"
objShell.Run(path, 1 ,True)
i = 0
'INSTALL MICROSOFT INTERNET EXPLORER 7
i = objShell.Run(path, 1 ,True)
If (i = 0) Or (i = 3010) Then
'WRITE EXIT CODE [0-success/3010-success&requires reboot] TO EVENTLOG
objShell.LogEvent vbLogSuccess, sLogHeader & "Microsoft Internet Explorer 7 installation completed successfully." & VbCrLf & "Exit code: " & i
Else
MsgBox "The installation of Microsoft Internet Explorer 7 returned an error: " & i & VbCrLf & _
"Please contact IT Support to report this error.", vbOKOnly
objShell.LogEvent vbLogError, sLogHeader & "Installation returned failure code: " & VbCrLf & "Exit code: " & i
End If

Else
WScript.Quit (1)
End If

set fso = Nothing
set WSHShell = Nothing
Wscript.Quit



The main purpose of the Exit code is to inform Altiris that the package has been installed successfully.

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Comments

Dec 03, 2008 01:22 PM

Don't forget to define the necessary variables in the main script. and sLogHeader = "Your application Name". Otherwise you will end up with error if you don't define sLogHeader.
Thanks
Sid

Oct 17, 2008 11:51 AM

At the beginning of your script when you have your CreateObject() calls, after each one (or after all of them) add the following:

If Err.Number <> 0 Then
MsgBox "Error creating required script objects!"
Wscript.Quit(1)
End If

Oct 16, 2008 12:15 PM

objShell.CurrentDirectory will fetch you the current directory but when i executed the vbscript in a command prompt, it doesn't execute. I tried replaing
spath = objShell.CurrentDirectory
with the below specified script. It worked for me.
---------------------------------------------------
'GET CURRENT FOLDER PATH
spath = fso.GetParentFolderName(WScript.ScriptFullName)
If Right(spath, 1) <> "\" Then spath = spath & "\"
---------------------------------------------------
Now we can remove "\" from "\IE7-WindowsXP-x86-enu.exe" from the main script

Symantec Juice

Oct 16, 2008 07:23 AM

Try restoring Windows Script Host settings to Defaults:
1. Start --> Run --> c:\WINDOWS\system32\wscript.exe
2. Check the option “Stop script after specified number of seconds”
3. Click on the button “Restore to Defaults”

If that doesn’t solve the issue then we can try manually registering vbscript.dll & jscript.dll
In the command prompt try executing the following commands.
1. Start --> Run --> regsvr32.exe vbscript.dll
2. Start --> Run --> regsvr32.exe jscript.dll
Sorry for the late reply
Good luck

May 15, 2008 11:32 AM

We occasionally run into issues where Windows Scripting Host is corrupted on a system and similar code that we use fails on that system. I would love to see the code for checking this in your script and also to find out recommendations for autorepairing WSH.

Related Entries and Links

No Related Resource entered.