The Windows Registry entry for Eclipse Temurin JRE installations (both x64 and x86) contains the wrong MSI parameter in the UninstallString.
The entry currently uses:
MsiExec.exe /I{ProductCode}
However, for scripted or automated uninstallation, this should be:
MsiExec.exe /x{ProductCode}
View UninstallString via PowerShell:
$software = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* -Name DisplayName,DisplayVersion,UninstallString -ErrorAction SilentlyContinue
$software += Get-ItemProperty HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* -Name DisplayName,DisplayVersion,UninstallString -ErrorAction SilentlyContinue
$software | Where-Object { $_.DisplayName -Match 'Eclipse Temurin JRE mit Hotspot' } | Format-Table -AutoSize
Example Output:
DisplayName DisplayVersion UninstallString
----------- -------------- ---------------
Eclipse Temurin JRE mit Hotspot 17.0.15+6 (x64) 17.0.15.6 MsiExec.exe /I{1584F958-FEAB-4C47-8505-2A75BEDC11AE}
Eclipse Temurin JRE mit Hotspot 17.0.15+6 (x86) 17.0.15.6 MsiExec.exe /I{ABFE9DD7-0453-4901-8B2B-0111F80C5E42}
Expected Behavior:
The UninstallString should use /x instead of /I for silent or automated uninstallation scenarios. This aligns with official Microsoft guidance:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec
Impact:
This misconfiguration breaks scripted uninstallations unless additional handling is implemented by deployment tools or package managers.
The Windows Registry entry for Eclipse Temurin JRE installations (both x64 and x86) contains the wrong MSI parameter in the UninstallString.
The entry currently uses:
MsiExec.exe /I{ProductCode}However, for scripted or automated uninstallation, this should be:
MsiExec.exe /x{ProductCode}View UninstallString via PowerShell:
Example Output:
Expected Behavior:
The UninstallString should use /x instead of /I for silent or automated uninstallation scenarios. This aligns with official Microsoft guidance:
Impact:
This misconfiguration breaks scripted uninstallations unless additional handling is implemented by deployment tools or package managers.