Here is my current script from removing previous versions of java via VBScript
' FILENAME: UninstallAllOldJava.vbs
' AUTHOR: jbmurphy
' SYNOPSIS: This script looks for older versions of Java and removes them
' DESCRIPTION: Searches add remove programs for J2SE or Java and removes if not current version
' NOTES: - Must edit strCurrentVersion to match the version you want to keep
' - if called with a computer name will, run against remote machine
' - logs to local path defined in strLogPath
' - assumes admin priv
' LINKS:
' EXAMPLE: UninstallAllOldJava.vbs
' EXAMPLE: UninstallAllOldJava.vbs \\workststion
' INPUTS: \\workststion (optional)
' RETURNVALUE: logs to value in strLogPath
' ChangeLog:
' 2009-10-27: jbmurphy-changes made
'On Error Resume Next
Option Explicit
DIM objFSO, strComputer, strCurrentVersion, objWMIService, colInstalledVersions
DIM objVersion, strLogPath, strLogName, strExecQuery
IF WScript.Arguments.Count > 0 then
strComputer = replace(WScript.Arguments(0),"\\","")
ELSE
strComputer = "."
END If
strLogPath = "%TEMP%"
strLogName = "Java_Uninstall.log"
strCurrentVersion = "Java(TM) 6 Update 15"
strExecQuery = "Select * from Win32_Product Where Name LIKE '%Java 2 Runtime Environment%' OR Name LIKE '%J2SE Runtime Environment%' OR Name LIKE '%Java(TM)%'"
KillProc
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledVersions = objWMIService.ExecQuery (strExecQuery)
LogIt String(120, "_")
LogIt String(120, "¯")
For Each objVersion in colInstalledVersions
If objVersion.Name = strCurrentVersion then
LogIt Now() & ": " &replace(strComputer,".","localhost") & ": Current version is installed: " & objVersion.Name & ":" & objVersion.IdentifyingNumber
else
LogIt Now() & ": " &replace(strComputer,".","localhost") & ": Uninstalling: " & objVersion.Name & ":" & objVersion.IdentifyingNumber
objVersion.Uninstall()
end if
Next
LogIt String(120, "_")
LogIt String(120, "¯")
LogIt String(120, " ")
Sub LogIt (strLineToWrite)
'wscript.echo strLineToWrite
DIM ts
If Not objFSO.FolderExists(strLogPath) Then MakeDir(strLogPath)
Set ts = objFSO.OpenTextFile(strLogPath & strLogName, 8, True)
ts.WriteLine strLineToWrite
ts.close
End Sub
Function MakeDir (strPath)
Dim strParentPath
On Error Resume Next
strParentPath = objFSO.GetParentFolderName(strPath)
If Not objFSO.FolderExists(strParentPath) Then MakeDir strParentPath
If Not objFSO.FolderExists(strPath) Then objFSO.CreateFolder strPath
On Error Goto 0
MakeDir = objFSO.FolderExists(strPath)
End Function
Sub KillProc()
'# kills jusched.exe and jqs.exe if they are running. These processes will cause the installer to fail.
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run "Taskkill /F /IM jusched.exe /T", 0, True
wshShell.Run "Taskkill /F /IM jqs.exe /T", 0, True
End Sub