Installing an Application Using VBScript
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.
WSH Errors
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.
WSH repair
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
Get current folder path
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
To check for corrupt WSH/WMI...
At the beginning of your script when you have your CreateObject() calls, after each one (or after all of them) add the following:
Thanks,
Kyle
Symantec Trusted Advisor
If your question has been resolved, please be sure to "Mark as Solution"! Thank you.
Define ......
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
Would you like to reply?
Login or Register to post your comment.