Client – Cleanup Java

JavaCleanup.png

Hello together,

today i want to show you a script of mine which removes Java from the computer. It makes no compromises and removes really everything of it. At least every relevant file and registry entry which i had found to that point.

But why? And why the hell so complicated?

Java – to be honest – can be very hard to debug. Sometimes an older file is loaded in the background or registry keys have been modified by a program or person previously. So this script creates a nearly green state.

Afterwards you can reinstall a new Java-version again if needed.
It will fix nearly all problems with missconfigurated or missinstalled java versions and at least it will create a state where you can debug still existing problems easily.

Because of deinstalling MSIs the script surely has to be run as Administrator. (rightclick – Run as Admin)
In some cases the script has to be run twice and also in very rare cases the system has to be restarted before installing a new version.
But enough said.

It exists of 2 files which can be found here: GitHubLink

The execution file JAVA_Cleanup.bat and the keyfile KEYS.ini.

JavaCleanup.bat:

@echo off
:: Author: David das Neves
:: Date:   15.06.2014
:: File:   Java_Cleanup.bat
:: Descr:  Cleans the computer from all java versions.

setlocal enableextensions enabledelayedexpansion

cls
echo *******************************************************************************
echo *******************************************************************************
echo *******************************************************************************
echo ********                        Java-Uninstaller                       ********
echo *******************************************************************************
echo *******************************************************************************
echo *******************************************************************************
echo ********                      Closing Processes                        ********
echo *******************************************************************************
echo *******************************************************************************

echo ******** iexplorer
Taskkill /F /IM iexplorer.exe /T 2>NUL
echo ******** iexplore
Taskkill /F /IM iexplore.exe /T 2>NUL
echo ******** firefox
Taskkill /F /IM firefox.exe /T 2>NUL
echo ******** chrome
Taskkill /F /IM chrome.exe /T 2>NUL
echo ******** jusched
Taskkill /F /IM jusched.exe /T 2>NUL
echo ******** jqs
Taskkill /F /IM jqs.exe /T 2>NUL
echo ******** java
Taskkill /F /IM java.exe /T 2>NUL
echo ******** javacpl
Taskkill /F /IM javacpl.exe /T 2>NUL

echo ******** Citrix
Taskkill /F /IM Receiver.exe /T 2>NUL
echo ******** Teamviewer / Connect
Taskkill /F /IM VisFastStart.exe /T 2>NUL
echo ******** WMIC
Taskkill /F /IM WMIC.exe /T 2>NUL
echo ******** MSI
Taskkill /F /IM msiexec.exe /T 2>NUL

echo *******************************************************************************
echo *******************************************************************************
echo ********                Deactivating existing Java-Addons              ********
echo *******************************************************************************
echo *******************************************************************************

::Cleaning up user-specific entries
@setlocal

set "RegPath=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList"
set "SID="

for /f "delims=" %%i in ('reg query "%RegPath%"^|findstr /ibc:"%RegPath%\S-"') do (
  echo %%~nxi & REG DELETE "HKU\%%~nxi\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{DBC80044-A445-435B-BC74-9C25C1C588A9}" /f & REG DELETE "HKU\%%~nxi\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{761497BB-D6F0-462C-B6EB-D4DAF1D92D43}" /f & REG DELETE "HKU\%%~nxi\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{08B0E5C0-4FCB-11CF-AAA5-00401C608501}" /f & REG DELETE "HKU\%%~nxi\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{E7E6F031-17CE-4C07-BC86-EABFE594F69C}" /f & REG DELETE "HKU\%%~nxi\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA}" /f & REG DELETE "HKU\%%~nxi\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{8AD9C840-044E-11D1-B3E9-00805F499D93}" /f)

sleep 5

echo ******** Adding regs in system content for addon
:: old JavaAddons
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID" /v {DBC80044-A445-435B-BC74-9C25C1C588A9} /d 0 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID" /v {761497BB-D6F0-462C-B6EB-D4DAF1D92D43} /d 0 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID" /v {CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA} /d 0 /f

sleep 3

::ADOBE
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID" /v {E7E6F031-17CE-4C07-BC86-EABFE594F69C} /d 0 /f

sleep 1
::new Java-Addon
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID" /v {08B0E5C0-4FCB-11CF-AAA5-00401C608501} /d 1 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ext\CLSID" /v {8AD9C840-044E-11D1-B3E9-00805F499D93} /d 1 /f

sleep 5

::ReOpening IE - forces a reload
echo ******** iexplore oeffnen
start iexplore

sleep 7

echo ******** iexplorer schliessen
Taskkill /F /IM iexplorer.exe /T 2>NUL
echo ******** iexplore schliessen
Taskkill /F /IM iexplore.exe /T 2>NUL

echo *******************************************************************************
echo *******************************************************************************
echo ********                Java Addons deactivation done                  ********
echo *******************************************************************************
echo *******************************************************************************
echo
echo
echo *******************************************************************************
echo ********                      Reloading MSI                             *******
echo *******************************************************************************
sc config msiserver start= demand
Net stop msiserver

MSIExec /unregister
MSIExec /regserver
regsvr32.exe /s %windir%\system32\msi.dll

Net start msiserver
sc config msiserver start= auto

sleep 7

echo *******************************************************************************
echo ********             Deinstallation of Java-versions                   ********
echo *******************************************************************************
echo *******************************************************************************

:: Gets through the substrings of the keys in the file keys.ini and searches for java installations and triggers a deinstallation if found.
FOR /f %%i in (KEYS.ini) do call :SearchAndDeinstall %%i 

sleep 3
::Deinstallation of all java products

:: CAUTION - all software packages with "java" in it will be deinstalled
:: if no such software is known you should uncomment the following statement
wmic product where "name like '%%Java%%'" call uninstall /nointeractive

sleep 10


echo *******************************************************************************
echo ********                     Removing Reg-Keys                         ********
echo *******************************************************************************
echo *******************************************************************************
sleep 5

::Java internal
REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{CAFEEFAC-6666-6666-6666-ABCDEFFEDCBA}" /f 
REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{08B0E5C0-4FCB-11CF-AAA5-00401C608501}\TreatAs" /f 

::Policy
REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft" /f
REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft" /f

sleep 5
::Deleting user-specific entries
@setlocal

set "RegPath=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList"
set "SID="

for /f "delims=" %%i in ('reg query "%RegPath%"^|findstr /ibc:"%RegPath%\S-"') do (
  echo %%~nxi & REG DELETE "HKU\%%~nxi\SOFTWARE\AppDataLow\Software\JavaSoft" /f
)
sleep 1

echo *******************************************************************************
echo ********               Deleting depending files and folders            ********
echo *******************************************************************************
echo *******************************************************************************


echo ******** DLLs               
::DLLs
del c:\Windows\system32\npdeploy*.dll
del c:\Windows\system32\npjpi170_17.dll
del c:\Windows\system32\npjpi160_18.dll
del c:\Windows\system32\npjpi150_22.dll
del c:\Windows\system32\npjpi142_19.dll

del c:\Windows\system32\java*.exe
del c:\Windows\system32\*java.exe
del c:\Windows\system32\*java*.exe

del c:\Windows\syswow64\npdeploy*.dll
del c:\Windows\syswow64\npjpi170_17.dll
del c:\Windows\syswow64\npjpi160_18.dll
del c:\Windows\syswow64\npjpi150_22.dll
del c:\Windows\syswow64\npjpi142_19.dll

del c:\Windows\syswow64\*java.exe
del c:\Windows\syswow64\java*.exe
del c:\Windows\syswow64\*java*.exe

echo ******** Programfolders 
rd /s /q "c:\Programme\Java"
rd /s /q "C:\Program Files (x86)\Java"

sleep 1
echo ******** All Sun-folders in c:/Users
c:
cd c:\users
for /f "delims=" %%a in ('dir /ad /b /s "Sun"') do echo "%%a"  & rd /s /q "%%a" 

sleep 1

echo *******************************************************************************
echo ********                   Resetting JAVA_OPTIONS                      ********
echo *******************************************************************************
echo *******************************************************************************
set JAVA_OPTIONS=
set _JAVA_OPTIONS=

:: Following may help in some cases
::set _JAVA_OPTIONS=-Xmx512M

echo *******************************************************************************
echo ********                Removing existing Reg-Keys                     ********
echo *******************************************************************************
echo *******************************************************************************
REG DELETE "HKEY_CLASSES_ROOT\JNLPFile\Shell\Open\Command" /f 
REG DELETE "HKEY_CLASSES_ROOT\jarfile\Shell\Open\Command" /f 

::Set correct version here.
::REG ADD "HKEY_CLASSES_ROOT\JNLPFile\Shell\Open\Command" /d "\"c:\Program Files\Java\jre8\bin\javaws.exe \"%1\"" /f
::REG ADD "HKEY_CLASSES_ROOT\jarfile\Shell\Open\Command" /d "\"c:\Program Files\Java\jre8\bin\javaws.exe \"%1\"" /f

:EOF
echo *******************************************************************************
echo *******************************************************************************
echo ********                 Deinstallation completed                      ********
echo *******************************************************************************
echo *******************************************************************************
exit

:SearchAndDeinstall
For /F "Tokens=6* delims=\" %%I In ('Reg Query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 2^>NUL ^|Findstr /I /C:"{%1"')  Do (
  echo %%J & MsiExec.exe /qn /x %%J /norestart
)
For /F "Tokens=7* delims=\" %%I In ('Reg Query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall 2^>NUL ^|Findstr /I /C:"{%1"')  Do (
  echo %%J & MsiExec.exe /qn /x %%J /norestart
)                                 

and the Keys.ini – from this file the existing substrings of the Installation-GUIDs of Java were inserted. Till now all Java versions up to Java 8 will be deinstalled.

26A24AE4-039D-4CA4-87B4-
3248F0A8-6813-11D6-A77B-
35A3A4F4-B792-11D6-A78A-
3248F0A8-6813-11D6-A77B-
7148F0A8-6813-11D6-A77B-

If you have any questions or critique please provide me with feedback.

Keep in mind that we fixed nearly every Java-problem by using this script on a client range of 30000 clients with Win 7. Therefore give it a try if you have also problems with Java!

And now – have fun cleaning the mess up! 🙂

Greetings,

David

Advertisement