Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :: Purpose: Nukes ALL versions of the Java Runtime, series 2 through 7, x86 and x64, and JavaFX
- :: Leaves Java Development Kit installations intact. Puts the lotion on its skin.
- :: Requirements: Run this script with a network admin account
- :: Author: vocatus on reddit.com/r/sysadmin and /r/usefulscripts
- :: History: 1.1 + Massive overhaul of functionality and logging
- :: 1.0 Initial write
- :: Prep
- @echo off
- set VERSION=1.1
- set UPDATED=2013-07-12
- :::::::::::::::
- :: VARIABLES :: -- set these if you'd like
- :::::::::::::::
- :: Rules for variables:
- :: * NO quotes! (bad: "c:\directory\path" )
- :: * NO trailing slashes on the path! (bad: c:\directory\ )
- :: * Spaces are okay (okay: c:\my folder\with spaces )
- :: * Network paths are okay (okay: \\server\share name )
- :: ( \\172.16.1.5\share name )
- :: Log settings
- set LOGPATH=%SystemDrive%\Logs
- set LOGFILE=%COMPUTERNAME%_java_runtime_removal.log
- :: ================================================================================= ::
- :: Don't touch anything below this line. If you do, somewhere a small puppy will die ::
- :: ================================================================================= ::
- :: Create the log directory if it doesn't exist
- if not exist %LOGPATH% mkdir %LOGPATH%
- :: Get the date into a format we can use (ISO standard date format)
- set CUR_DATE=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%
- ::::::::::
- :: PREP ::
- ::::::::::
- :: Log that we started
- echo.
- echo JAVA RUNTIME NUKER
- echo v%VERSION%, updated %UPDATED%
- echo.
- echo %CUR_DATE% %TIME% Beginning removal of Java Runtimes (v2-7, x86 and x64) and JavaFX...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Beginning removal of Java Runtimes (v2-7, x86 and x64) and JavaFX...
- :: Kill all browsers and running Java instances first
- echo %CUR_DATE% %TIME% Killing all browsers and running Java instances first...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Killing all browsers and running Java instances first...
- echo.
- taskkill /F /IM iexplorer.exe >> %LOGPATH%\%LOGFILE%
- taskkill /F /IM iexplore.exe >> %LOGPATH%\%LOGFILE%
- taskkill /F /IM javaw.exe >> %LOGPATH%\%LOGFILE%
- taskkill /F /IM java.exe >> %LOGPATH%\%LOGFILE%
- taskkill /F /IM jqs.exe >> %LOGPATH%\%LOGFILE%
- taskkill /F /IM jusched.exe >> %LOGPATH%\%LOGFILE%
- echo.
- :::::::::::::::::::::::::
- :: UNINSTALLER SECTION ::
- :::::::::::::::::::::::::
- :: Run wildcard uninstallers
- echo %CUR_DATE% %TIME% Attempting regular uninstallation via WMIC wildcard method...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Attempting regular uninstallation via WMIC wildcard method...
- echo %CUR_DATE% %TIME% This might take a few minutes. Don't close this window.
- wmic product where "name like '%%J2SE Runtime%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
- wmic product where "name like 'Java 2 Runtime%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
- wmic product where "name like 'Java%%Runtime%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
- wmic product where "name like 'Java(TM) 6 Update%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
- wmic product where "name like 'Java%%TM%%7 Update%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
- wmic product where "name like 'Java 7 Update%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
- wmic product where "name like 'JavaFX%%'" call uninstall /nointeractive
- echo %CUR_DATE% %TIME% Regular uninstallers done.
- ::::::::::::::::::::::
- :: REGISTRY CLEANUP ::
- ::::::::::::::::::::::
- :: Search for leftover registry keys
- echo %CUR_DATE% %TIME% Commencing registry cleanup...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Commencing registry cleanup...
- echo %CUR_DATE% %TIME% Searching for residual Java Runtime registry keys...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Searching for residual Java Runtime registry keys...
- reg query HKLM\software\classes\installer\products /f "J2SE" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
- reg query HKLM\software\classes\installer\products /f "Java(tm) 6" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
- reg query HKLM\software\classes\installer\products /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
- reg query HKLM\software\classes\installer\products /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
- :: List the leftover registry keys
- echo %CUR_DATE% %TIME% Listing residual keys...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Listing residual keys...
- echo.>> %LOGPATH%\%LOGFILE%
- echo.
- type %temp%\deljava.txt>> %LOGPATH%\%LOGFILE%
- type %temp%\deljava.txt
- echo.>> %LOGPATH%\%LOGFILE%
- echo.
- :: Backup the various registry keys that will get deleted (if they exist)
- echo %CUR_DATE% %TIME% Backing up keys...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Backing up keys...
- if exist "%TEMP%\java_purge_registry_backup" rmdir /s /q "%TEMP%\java_purge_registry_backup" >NUL
- mkdir %TEMP%\java_purge_registry_backup >NUL
- for /f "tokens=* delims= " %%a in (%TEMP%\deljava.txt) do (reg query %%a) >> %TEMP%\java_purge_registry_backup\java_reg_keys_1.bak
- reg export "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" "%TEMP%\java_purge_registry_backup\java_reg_keys_2.reg" >> %LOGPATH%\%LOGFILE%
- reg export "HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\JavaSoft\Java Runtime Environment" "%TEMP%\java_purge_registry_backup\java_reg_keys_3.reg" >> %LOGPATH%\%LOGFILE%
- echo.
- echo %CUR_DATE% %TIME% Residual keys backed up to %TEMP%\java_purge_registry_backup\ >> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Residual keys backed up to %TEMP%\java_purge_registry_backup\
- echo %CUR_DATE% %TIME% This directory will be deleted at next reboot, so get it now if you need it! >> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% This directory will be deleted at next reboot, so get it now if you need it!
- :: Purge leftover registry keys
- echo %CUR_DATE% %TIME% Purging keys...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Purging keys...
- echo.
- for /f "tokens=* delims= " %%a in (%TEMP%\deljava.txt) do reg delete %%a /f >> %LOGPATH%\%LOGFILE%
- del /S /Q %TEMP%\deljava.txt
- reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /f >> %LOGPATH%\%LOGFILE%
- reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\JavaSoft\Java Runtime Environment" /f >> %LOGPATH%\%LOGFILE%
- echo.
- echo %CUR_DATE% %TIME% Residual keys purged. Registry cleanup done.>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Residual keys purged. Registry cleanup done.
- :::::::::::::::::::
- :: FILE CLEANUP ::
- :::::::::::::::::::
- echo %CUR_DATE% %TIME% Commencing file and directory cleanup...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Commencing file and directory cleanup...
- :: Nuke 32-bit Java installation directories
- echo %CUR_DATE% %TIME% Removing "%ProgramFiles(x86)%\jre*" directories...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Removing "%ProgramFiles(x86)%\jre*" directories...
- FOR /D /R "%ProgramFiles(x86)%\Java\" %%X IN (j2re*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
- FOR /D /R "%ProgramFiles(x86)%\Java" %%X IN (jre*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
- :: Nuke 64-bit Java installation directories
- echo %CUR_DATE% %TIME% Removing "%ProgramFiles%\jre*" directories...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Removing "%ProgramFiles%\jre*" directories...
- FOR /D /R "%ProgramFiles%\Java\" %%X IN (j2re*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
- FOR /D /R "%ProgramFiles%\Java" %%X IN (jre*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Done.>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Done.
- :: Miscellaneous stuff
- echo %CUR_DATE% %TIME% Searching for and purging other Java Runtime-related directories...>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Searching for and purging other Java Runtime-related directories...
- echo.>> %LOGPATH%\%LOGFILE%
- del /F /Q %SystemDrive%\1033.mst>> %LOGPATH%\%LOGFILE%
- del /F /S /Q "%SystemDrive%\J2SE Runtime Environment*">> %LOGPATH%\%LOGFILE%
- echo.>> %LOGPATH%\%LOGFILE%
- :: Done.
- echo %CUR_DATE% %TIME% File and directory cleanup done.>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% File and directory cleanup done.
- echo %CUR_DATE% %TIME% All versions of the Java Runtime have been removed. Recommend rebooting and washing your hands.>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% All versions of the Java Runtime have been removed. Recommend rebooting and washing your hands.
- echo %CUR_DATE% %TIME% Registry hive backups here: %TEMP%\java_purge_registry_backup\>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Registry hive backups here: %TEMP%\java_purge_registry_backup\
- echo %CUR_DATE% %TIME% Log file here: %LOGPATH%\%LOGFILE%>> %LOGPATH%\%LOGFILE%
- echo %CUR_DATE% %TIME% Log file here: %LOGPATH%\%LOGFILE%
- REM Return exit code to SCCM/PDQ Deploy/etc
- exit /B %EXIT_CODE%
Add Comment
Please, Sign In to add comment