Fixlet to uninstall all Java SE clients, 32-bit and 64 bit

(imported topic written by jfschafer)

Anyone have a fixlet to uninstall all Java SE clients, 32-bit or 64-bit? I know there’s one that will uninstall all but the latest version but would like to see something that allows you to uninstall completely, especially with all these 0-day exploits (like the one today that just got announced). Hopefully, won;t have to use it but it’s good to have for emergencies. Be even better if it became a published fixlet by IBM.

(imported comment written by jgolembi)

jfschafer,

I do not have anywhere to test this at, but I looked at the relevance of fixlet 7052001 in Updates for windows applications.

It would appear to be a very simple edit… In the action you would take this:

appendfile @ECHO OFF appendfile 
{concatenation 
"%0d%0a" of (
"start /w msiexec /x" & name of it & 
" /qn REBOOT=ReallySuppress") of keys whose (((it contains 
"java" OR it contains 
"j2se") AND NOT (it contains 
"development kit" or it contains 
"auto updater" or it contains 
"javafx")) of (value 
"DisplayName" of it as string as lowercase) AND value 
"DisplayVersion" of it as string as version >= 
"1.4.2" AND (numeric value of concatenation of (

if length of it = 1 then 
"000" & it 

else 

if length of it = 2 then 
"00" & it 

else 

if length of it = 3 then 
"0" & it 

else it) of substrings separated by 
"_" of substrings separated by 
"." of ((pad of (value 
"DisplayVersion" of it as string as version)) as string)) < (maximum of (numeric values of concatenation of (

if length of it = 1 then 
"000" & it 

else 

if length of it = 2 then 
"00" & it 

else 

if length of it = 3 then 
"0" & it 

else it) of substrings separated by 
"_" of substrings separated by 
"." of ((pad of (value 
"DisplayVersion" of it as string as version)) as string)) of keys whose (((it contains 
"java" OR it contains 
"j2se")) of (value 
"DisplayName" of it as string as lowercase) AND value 
"DisplayVersion" of it as string as version >= 
"1.4.2") of key 
"HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" of registry)) of key 
"HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" of registry
}

and modify it to:

appendfile @ECHO OFF appendfile 
{concatenation 
"%0d%0a" of (
"start /w msiexec /x" & name of it & 
" /qn REBOOT=ReallySuppress") of keys whose (((it contains 
"java" OR it contains 
"j2se") AND NOT (it contains 
"development kit" or it contains 
"auto updater" or it contains 
"javafx")) of (value 
"DisplayName" of it as string as lowercase)  AND (numeric value of concatenation of (

if length of it = 1 then 
"000" & it 

else 

if length of it = 2 then 
"00" & it 

else 

if length of it = 3 then 
"0" & it 

else it) of substrings separated by 
"_" of substrings separated by 
"." of ((pad of (value 
"DisplayVersion" of it as string as version)) as string)) < (maximum of (numeric values of concatenation of (

if length of it = 1 then 
"000" & it 

else 

if length of it = 2 then 
"00" & it 

else 

if length of it = 3 then 
"0" & it 

else it) of substrings separated by 
"_" of substrings separated by 
"." of ((pad of (value 
"DisplayVersion" of it as string as version)) as string)) of keys whose (((it contains 
"java" OR it contains 
"j2se")) of (value 
"DisplayName" of it as string as lowercase)) of key 
"HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" of registry)) of key 
"HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" of registry
}

There would be a similar modification in the relevance as well. Unfortunately I have no way to test this… let me know if this is what you were thinking.

-John G