Uninstall mulitple versions of JRE
Hi All.
This is my first time here and pretty new to the automated deployment experience.
Basically I am trying to consolate all of our versions of JRE on our users machines and would like to uninstall existing versions and reinstall the latest version.
Below are the version we have on machines now:
J2SE Development Kit 5.0 Update 1
J2SE Development Kit 5.0 Update 6
J2SE Development Kit 5.0 Update 8
J2SE Runtime Environment 5.0 Update 1
J2SE Runtime Environment 5.0 Update 10
J2SE Runtime Environment 5.0 Update 2
J2SE Runtime Environment 5.0 Update 4
J2SE Runtime Environment 5.0 Update 5
J2SE Runtime Environment 5.0 Update 6
J2SE Runtime Environment 5.0 Update 8
J2SE Runtime Environment 5.0 Update 9
Java 2 Runtime Environment Standard Edition v1.3.1_03
Java 2 Runtime Environment, SE v1.4.0
Java 2 Runtime Environment, SE v1.4.0_01
Java 2 Runtime Environment, SE v1.4.1_01
Java 2 Runtime Environment, SE v1.4.1_02
Java 2 Runtime Environment, SE v1.4.2
Java 2 Runtime Environment, SE v1.4.2_01
Java 2 Runtime Environment, SE v1.4.2_03
Java 2 Runtime Environment, SE v1.4.2_05
Java 2 Runtime Environment, SE v1.4.2_06
Java 2 Runtime Environment, SE v1.4.2_10
Java 2 Runtime Environment, SE v1.4.2_11
Java 2 Runtime Environment, SE v1.4.2_13
To do this I need the msi product/package codes to tell wise to uninstall these, does anyone know a easy way for me to get these or a better way of removing the installations?
Many thanks.
Lee.
This is my first time here and pretty new to the automated deployment experience.
Basically I am trying to consolate all of our versions of JRE on our users machines and would like to uninstall existing versions and reinstall the latest version.
Below are the version we have on machines now:
J2SE Development Kit 5.0 Update 1
J2SE Development Kit 5.0 Update 6
J2SE Development Kit 5.0 Update 8
J2SE Runtime Environment 5.0 Update 1
J2SE Runtime Environment 5.0 Update 10
J2SE Runtime Environment 5.0 Update 2
J2SE Runtime Environment 5.0 Update 4
J2SE Runtime Environment 5.0 Update 5
J2SE Runtime Environment 5.0 Update 6
J2SE Runtime Environment 5.0 Update 8
J2SE Runtime Environment 5.0 Update 9
Java 2 Runtime Environment Standard Edition v1.3.1_03
Java 2 Runtime Environment, SE v1.4.0
Java 2 Runtime Environment, SE v1.4.0_01
Java 2 Runtime Environment, SE v1.4.1_01
Java 2 Runtime Environment, SE v1.4.1_02
Java 2 Runtime Environment, SE v1.4.2
Java 2 Runtime Environment, SE v1.4.2_01
Java 2 Runtime Environment, SE v1.4.2_03
Java 2 Runtime Environment, SE v1.4.2_05
Java 2 Runtime Environment, SE v1.4.2_06
Java 2 Runtime Environment, SE v1.4.2_10
Java 2 Runtime Environment, SE v1.4.2_11
Java 2 Runtime Environment, SE v1.4.2_13
To do this I need the msi product/package codes to tell wise to uninstall these, does anyone know a easy way for me to get these or a better way of removing the installations?
Many thanks.
Lee.
0 Comments
[ + ] Show comments
Answers (16)
Please log in to answer
Posted by:
gmorgan618
17 years ago
Ok now for the fun stuff... the easiest way to compare what i'm about to say is probably to create a script that does the matching for you...
I'm going to use the word - reversed - in the registry the GUID's are *almost* reversed... I'll explain how to translate them at the end of this...
a list of reversed-upgrade codes on your machine is found here...
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes
each subkey is a reversed-upgrade code, opening each key will(should) display a single(multiple if more than one upgradable app installed) String registry value
This single registry value is the reversed-GUID of the application... but it refers directly to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
each key listed here is the reversed-GUID of an installed(or previously installed in some cases) application.
Use the InstallProperties key to figure out what the application is.
So if HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\20A7FB42A06BB49448A397B3CB77ED4D contains a Reg_String value of CD1A110AD1F78AE4DB11C0F579814E82 ... you would go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\CD1A110AD1F78AE4DB11C0F579814E82\InstallProperties and look at the DisplayName value to figure out the application the upgrade code refers to.
So now we have our reversed-upgradecode of 20A7FB42A06BB49448A397B3CB77ED4D .... to get the actual Upgrade code -- Now it's really getting tricky..
UpgradeCode guids(Guids in general) are in this form {12345678-1234-1234-1234-123456789ABC}
A reversed GUID is formated like this - 87654321 / 3186 / 4321 / 2143 / 214365879ACB - I've broken up teh sections with slashes... the actual result is 87654321318643212143214365879ACB
So......
Guid = {12345678-1234-1234-1234-123456789ABC}
Reversed-GUID = 87654321318643212143214365879ACB
Basically the first 3 sections are completely reversed(for each individual section) and every 2 numbers after that are swaped... all { and - are removed
To use this Upgrade code in the MSI you'll have to reformat it to {12345678-1234-1234-1234-123456789ABC}
Like i said, a script would probably be the easiest way... I hope this helps somewhat...
-Grant
I'm going to use the word - reversed - in the registry the GUID's are *almost* reversed... I'll explain how to translate them at the end of this...
a list of reversed-upgrade codes on your machine is found here...
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes
each subkey is a reversed-upgrade code, opening each key will(should) display a single(multiple if more than one upgradable app installed) String registry value
This single registry value is the reversed-GUID of the application... but it refers directly to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
each key listed here is the reversed-GUID of an installed(or previously installed in some cases) application.
Use the InstallProperties key to figure out what the application is.
So if HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\20A7FB42A06BB49448A397B3CB77ED4D contains a Reg_String value of CD1A110AD1F78AE4DB11C0F579814E82 ... you would go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\CD1A110AD1F78AE4DB11C0F579814E82\InstallProperties and look at the DisplayName value to figure out the application the upgrade code refers to.
So now we have our reversed-upgradecode of 20A7FB42A06BB49448A397B3CB77ED4D .... to get the actual Upgrade code -- Now it's really getting tricky..
UpgradeCode guids(Guids in general) are in this form {12345678-1234-1234-1234-123456789ABC}
A reversed GUID is formated like this - 87654321 / 3186 / 4321 / 2143 / 214365879ACB - I've broken up teh sections with slashes... the actual result is 87654321318643212143214365879ACB
So......
Guid = {12345678-1234-1234-1234-123456789ABC}
Reversed-GUID = 87654321318643212143214365879ACB
Basically the first 3 sections are completely reversed(for each individual section) and every 2 numbers after that are swaped... all { and - are removed
To use this Upgrade code in the MSI you'll have to reformat it to {12345678-1234-1234-1234-123456789ABC}
Like i said, a script would probably be the easiest way... I hope this helps somewhat...
-Grant
Posted by:
gmorgan618
17 years ago
Some of those installation are MSI i believe, you'll have to gather the Upgrade codes...
Else you can script the uninstall -
Have the script run through the Uninstall Key and uninstall everything that says Java in the name...
That is what my company did any... There might be a Java clean up utility out there somewhere...
Else you can script the uninstall -
Have the script run through the Uninstall Key and uninstall everything that says Java in the name...
That is what my company did any... There might be a Java clean up utility out there somewhere...
Posted by:
nheim
17 years ago
Hi Lee,
Use the upgrade codes as Grant suggested. But there is special case with the most of this versions, because SUN put wrong version values into all of the releases until 1.5.070
From 1.5.080 onwards, they are correct. See:
http://itninja.com/question/uninstall?-major-upgrade?&mpage=1&key=java%2Cupdate%2Cversion䨮
Regards, Nick
Use the upgrade codes as Grant suggested. But there is special case with the most of this versions, because SUN put wrong version values into all of the releases until 1.5.070
From 1.5.080 onwards, they are correct. See:
http://itninja.com/question/uninstall?-major-upgrade?&mpage=1&key=java%2Cupdate%2Cversion䨮
Regards, Nick
Posted by:
lpryor
17 years ago
Posted by:
nheim
17 years ago
Posted by:
sstelzer
17 years ago
nheim,
I'm also creating a script (with Kixtart) to uninstall all versions of JRE and replace them with the latest version (ie. install 1.4.2_13 only if any prior version of 1.4.x was installed, same with the 1.5 and 1.3 series). I have it all figured out except the 1.4.1 versions - I can share the script with you when it's done, and I'm planning delivering this script via CA Unicenter as if it were an application installation.
The 1.4.1 versions were originally packaged by Sun with Installshield 6.00 and need a .iss file to uninstall. My script is dynamically writing a .iss file and then referring to it to perform the 1.4.1_x uninstalls, but I'm getting an error "-3" from the uninstallation, which means something is missing from the .iss file. I'm still working on that part (it's why I came to appdeploy.com today). If anyone can help with that it would be great. When I run the uninstall command without the -s switch, I only get the dialog stating "it's already installed; would you like to uninstall it?" So it's not like Installshield really needs to know anything else.
---edit---> I resolved the issue writing iss files 1/30/07. I was leaving out a left bracket *duh*. My little kix script now detects and uninstalls all versions of JRE up the the latest.
I'm also creating a script (with Kixtart) to uninstall all versions of JRE and replace them with the latest version (ie. install 1.4.2_13 only if any prior version of 1.4.x was installed, same with the 1.5 and 1.3 series). I have it all figured out except the 1.4.1 versions - I can share the script with you when it's done, and I'm planning delivering this script via CA Unicenter as if it were an application installation.
The 1.4.1 versions were originally packaged by Sun with Installshield 6.00 and need a .iss file to uninstall. My script is dynamically writing a .iss file and then referring to it to perform the 1.4.1_x uninstalls, but I'm getting an error "-3" from the uninstallation, which means something is missing from the .iss file. I'm still working on that part (it's why I came to appdeploy.com today). If anyone can help with that it would be great. When I run the uninstall command without the -s switch, I only get the dialog stating "it's already installed; would you like to uninstall it?" So it's not like Installshield really needs to know anything else.
---edit---> I resolved the issue writing iss files 1/30/07. I was leaving out a left bracket *duh*. My little kix script now detects and uninstalls all versions of JRE up the the latest.
Posted by:
gmorgan618
17 years ago
Here are all the upgrade codes for version 1.5.0.1 to 1.5.0.10
{3248F0A7-6813-11D6-A77B-00B0D0150100}
{3248F0A7-6813-11D6-A77B-00B0D0150090}
{3248F0A7-6813-11D6-A77B-00B0D0150080}
{3248F0A7-6813-11D6-A77B-00B0D0150070}
{3248F0A7-6813-11D6-A77B-00B0D0150050}
{3248F0A7-6813-11D6-A77B-00B0D0150050}
{3248F0A7-6813-11D6-A77B-00B0D0150040}
{3248F0A7-6813-11D6-A77B-00B0D0150030}
{3248F0A7-6813-11D6-A77B-00B0D0150020}
{3248F0A7-6813-11D6-A77B-00B0D0150010}
Notice a pattern? I hate this crap - they are all teh same family, the upgrade code should all be the same
Use a version of 1.5.0 for all Upgrade table entries...
I just finished updating the 1.5.0.11 msi with this info and it worked like a charm.
{3248F0A7-6813-11D6-A77B-00B0D0150100}
{3248F0A7-6813-11D6-A77B-00B0D0150090}
{3248F0A7-6813-11D6-A77B-00B0D0150080}
{3248F0A7-6813-11D6-A77B-00B0D0150070}
{3248F0A7-6813-11D6-A77B-00B0D0150050}
{3248F0A7-6813-11D6-A77B-00B0D0150050}
{3248F0A7-6813-11D6-A77B-00B0D0150040}
{3248F0A7-6813-11D6-A77B-00B0D0150030}
{3248F0A7-6813-11D6-A77B-00B0D0150020}
{3248F0A7-6813-11D6-A77B-00B0D0150010}
Notice a pattern? I hate this crap - they are all teh same family, the upgrade code should all be the same
Use a version of 1.5.0 for all Upgrade table entries...
I just finished updating the 1.5.0.11 msi with this info and it worked like a charm.
Posted by:
sstelzer
17 years ago
It gets better. The codes for all the versions at least have simple patterns except the 1.4.1 family. These are the keys under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall for that family (used with Installshield 6, not MSI)
{CD0159C9-17FB-11D6-A76A-00B0D079AF64} 1.4.1
{1666FA7C-CB5F-11D6-A78C-00B0D079AF64} 1.4.1_01
{EFCE5837-FC21-11D6-9D24-00010240CE95} 1.4.1_02
{C4B03AEB-33D3-11D7-9D37-00010240CE95} 1.4.1_03
{ACD27BF3-7CDC-11D7-9D4D-00010240CE95} 1.4.1_04
{78D082B3-ACEE-11D7-9D64-00010240CE95} 1.4.1_05
{6B2F032F-CC54-11D7-9D67-00010240CE95} 1.4.1_06
{CA532E73-1BB7-11D8-9D6A-00010240CE95} 1.4.1_07
{CD0159C9-17FB-11D6-A76A-00B0D079AF64} 1.4.1
{1666FA7C-CB5F-11D6-A78C-00B0D079AF64} 1.4.1_01
{EFCE5837-FC21-11D6-9D24-00010240CE95} 1.4.1_02
{C4B03AEB-33D3-11D7-9D37-00010240CE95} 1.4.1_03
{ACD27BF3-7CDC-11D7-9D4D-00010240CE95} 1.4.1_04
{78D082B3-ACEE-11D7-9D64-00010240CE95} 1.4.1_05
{6B2F032F-CC54-11D7-9D67-00010240CE95} 1.4.1_06
{CA532E73-1BB7-11D8-9D6A-00010240CE95} 1.4.1_07
Posted by:
gmorgan618
17 years ago
Posted by:
lpryor
17 years ago
ORIGINAL: gmorgan618
Here are all the upgrade codes for version 1.5.0.1 to 1.5.0.10
That is exactly what I was after. I think I found the product codes and that why it wasn't working. How can I find the "upgrade codes" of the other versions I have install around the place?
Edit: I don't have the original msi's. Is there a way of finding them in the registry or somewhere else in Windows?
Thanks!
Lee.
Posted by:
lpryor
17 years ago
ORIGINAL: gmorgan618
So now we have our reversed-upgradecode of 20A7FB42A06BB49448A397B3CB77ED4D .... to get the actual Upgrade code -- Now it's really getting tricky..
UpgradeCode guids(Guids in general) are in this form {12345678-1234-1234-1234-123456789ABC}
A reversed GUID is formated like this - 87654321 / 3186 / 4321 / 2143 / 214365879ACB - I've broken up teh sections with slashes... the actual result is 87654321318643212143214365879ACB
So......
Guid = {12345678-1234-1234-1234-123456789ABC}
Reversed-GUID = 87654321318643212143214365879ACB
Basically the first 3 sections are completely reversed(for each individual section) and every 2 numbers after that are swaped... all { and - are removed
To use this Upgrade code in the MSI you'll have to reformat it to {12345678-1234-1234-1234-123456789ABC}
Thanks heaps Grant!! I'm almost there. I have be trying this on JRE 1.5.0.10 as a test.
The proper GUID is:
3248F0A7-6813-11D6-A77B-00B0D0150010
I get this out of the registry:
7A0F8423-3186-6D11-7AB7-000B0D511000
I can convert the first 3 parts fine but cannot for the life of me figure out the last two parts:
3248F0A7-6813-11D6-7BA7-000B0D511000
Could you re-explain the swapping of every second digit? I'm so close!!!
Thanks to everyone once again.
Posted by:
gmorgan618
17 years ago
Your proper GUID is for 1.5.0.1 - 3248F0A7-6813-11D6-A77B-00B0D0150010
The proper GUID for 10 is 3248F0A7-6813-11D6-A77B-00B0D0150100
For - 7A0F8423-3186-6D11-7AB7-000B0D511000
its - 3248F0A7-6813-11D6-A77B-00B0D0150100
For the last 16 numbers every pair of numbers is reversed so 7B = B7
In the upgrade table - rememeber you have to add { }'s
Does it work? I'm excited now.... haha
-Grant
The proper GUID for 10 is 3248F0A7-6813-11D6-A77B-00B0D0150100
For - 7A0F8423-3186-6D11-7AB7-000B0D511000
its - 3248F0A7-6813-11D6-A77B-00B0D0150100
For the last 16 numbers every pair of numbers is reversed so 7B = B7
In the upgrade table - rememeber you have to add { }'s
Does it work? I'm excited now.... haha
-Grant
Posted by:
turbokitty
17 years ago
Posted by:
lpryor
17 years ago
Posted by:
schieb
17 years ago
I am sure all this reverse guid'ing is fun but why not just browse the uninstall key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FindYourAppGuid}
Then find the UninstallString
change the msiexec /I to msiexec /X and add a /qn.... you're done.
Here is my job that works:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FindYourAppGuid}
Then find the UninstallString
change the msiexec /I to msiexec /X and add a /qn.... you're done.
Here is my job that works:
REM Remove previous versions and install update 10
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150000} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150010} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150020} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150030} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150040} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150050} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150060} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150070} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150080} /qn
msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150090} /qn
REM Install Java Runtime 5.0 Update 10
msiexec /i "JRE_1_5_0_10\J2SE Runtime Environment 5.0 Update 10.msi" TRANSFORMS="JRE_1_5_0_10\J2SE Runtime Environment 5.0 Update 10.mst" /qb-
Posted by:
jerthedude
17 years ago
I ran into this same issue, but needed to uninstall all of the 1.4.2 versions. Below are all of the upgrade codes for the 1.4.2 family.
{7148F0A7-6813-11D6-A77B-00B0D0142000} 1.4.2
{7148F0A7-6813-11D6-A77B-00B0D0142010} 1.4.2_01
{7148F0A7-6813-11D6-A77B-00B0D0142020} 1.4.2_02
{7148F0A7-6813-11D6-A77B-00B0D0142030} 1.4.2_03
{7148F0A7-6813-11D6-A77B-00B0D0142040} 1.4.2_04
{7148F0A7-6813-11D6-A77B-00B0D0142050} 1.4.2_05
{7148F0A7-6813-11D6-A77B-00B0D0142060} 1.4.2_06
{7148F0A7-6813-11D6-A77B-00B0D0142070} 1.4.2_07
{7148F0A7-6813-11D6-A77B-00B0D0142080} 1.4.2_08
{7148F0A7-6813-11D6-A77B-00B0D0142090} 1.4.2_09
{7148F0A7-6813-11D6-A77B-00B0D0142100} 1.4.2_10
{7148F0A7-6813-11D6-A77B-00B0D0142110} 1.4.2_11
{7148F0A7-6813-11D6-A77B-00B0D0142120} 1.4.2_12
{7148F0A7-6813-11D6-A77B-00B0D0142000} 1.4.2
{7148F0A7-6813-11D6-A77B-00B0D0142010} 1.4.2_01
{7148F0A7-6813-11D6-A77B-00B0D0142020} 1.4.2_02
{7148F0A7-6813-11D6-A77B-00B0D0142030} 1.4.2_03
{7148F0A7-6813-11D6-A77B-00B0D0142040} 1.4.2_04
{7148F0A7-6813-11D6-A77B-00B0D0142050} 1.4.2_05
{7148F0A7-6813-11D6-A77B-00B0D0142060} 1.4.2_06
{7148F0A7-6813-11D6-A77B-00B0D0142070} 1.4.2_07
{7148F0A7-6813-11D6-A77B-00B0D0142080} 1.4.2_08
{7148F0A7-6813-11D6-A77B-00B0D0142090} 1.4.2_09
{7148F0A7-6813-11D6-A77B-00B0D0142100} 1.4.2_10
{7148F0A7-6813-11D6-A77B-00B0D0142110} 1.4.2_11
{7148F0A7-6813-11D6-A77B-00B0D0142120} 1.4.2_12
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.