Guest User

[BATCH] Java Runtime Nuker v1.1

a guest
Jul 12th, 2013
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. :: Purpose:         Nukes ALL versions of the Java Runtime, series 2 through 7, x86 and x64, and JavaFX
  2. ::                  Leaves Java Development Kit installations intact. Puts the lotion on its skin.
  3. :: Requirements:    Run this script with a network admin account
  4. :: Author:          vocatus on reddit.com/r/sysadmin and /r/usefulscripts
  5. :: History:         1.1 + Massive overhaul of functionality and logging
  6. ::                  1.0   Initial write
  7.  
  8. :: Prep
  9. @echo off
  10. set VERSION=1.1
  11. set UPDATED=2013-07-12
  12.  
  13. :::::::::::::::
  14. :: VARIABLES :: -- set these if you'd like
  15. :::::::::::::::
  16. :: Rules for variables:
  17. ::  * NO quotes!                       (bad:  "c:\directory\path"       )
  18. ::  * NO trailing slashes on the path! (bad:   c:\directory\            )
  19. ::  * Spaces are okay                  (okay:  c:\my folder\with spaces )
  20. ::  * Network paths are okay           (okay:  \\server\share name      )
  21. ::                                     (       \\172.16.1.5\share name  )
  22.  
  23. :: Log settings
  24. set LOGPATH=%SystemDrive%\Logs
  25. set LOGFILE=%COMPUTERNAME%_java_runtime_removal.log
  26.  
  27.  
  28. :: ================================================================================= ::
  29. :: Don't touch anything below this line. If you do, somewhere a small puppy will die ::
  30. :: ================================================================================= ::
  31.  
  32. :: Create the log directory if it doesn't exist
  33. if not exist %LOGPATH% mkdir %LOGPATH%
  34.  
  35. :: Get the date into a format we can use (ISO standard date format)
  36. set CUR_DATE=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%
  37.  
  38.  
  39. ::::::::::
  40. :: PREP ::
  41. ::::::::::
  42. :: Log that we started
  43. echo.
  44. echo  JAVA RUNTIME NUKER
  45. echo  v%VERSION%, updated %UPDATED%
  46. echo.
  47. echo %CUR_DATE% %TIME%   Beginning removal of Java Runtimes (v2-7, x86 and x64) and JavaFX...>> %LOGPATH%\%LOGFILE%
  48. echo %CUR_DATE% %TIME%   Beginning removal of Java Runtimes (v2-7, x86 and x64) and JavaFX...
  49.  
  50. :: Kill all browsers and running Java instances first
  51. echo %CUR_DATE% %TIME%   Killing all browsers and running Java instances first...>> %LOGPATH%\%LOGFILE%
  52. echo %CUR_DATE% %TIME%   Killing all browsers and running Java instances first...
  53. echo.
  54. taskkill /F /IM iexplorer.exe >> %LOGPATH%\%LOGFILE%
  55. taskkill /F /IM iexplore.exe >> %LOGPATH%\%LOGFILE%
  56. taskkill /F /IM javaw.exe >> %LOGPATH%\%LOGFILE%
  57. taskkill /F /IM java.exe >> %LOGPATH%\%LOGFILE%
  58. taskkill /F /IM jqs.exe >> %LOGPATH%\%LOGFILE%
  59. taskkill /F /IM jusched.exe >> %LOGPATH%\%LOGFILE%
  60. echo.
  61.  
  62.  
  63. :::::::::::::::::::::::::
  64. :: UNINSTALLER SECTION ::
  65. :::::::::::::::::::::::::
  66. :: Run wildcard uninstallers
  67. echo %CUR_DATE% %TIME%   Attempting regular uninstallation via WMIC wildcard method...>> %LOGPATH%\%LOGFILE%
  68. echo %CUR_DATE% %TIME%   Attempting regular uninstallation via WMIC wildcard method...
  69. echo %CUR_DATE% %TIME%   This might take a few minutes. Don't close this window.
  70. wmic product where "name like '%%J2SE Runtime%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
  71. wmic product where "name like 'Java 2 Runtime%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
  72. wmic product where "name like 'Java%%Runtime%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
  73. wmic product where "name like 'Java(TM) 6 Update%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
  74. wmic product where "name like 'Java%%TM%%7 Update%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
  75. wmic product where "name like 'Java 7 Update%%'" call uninstall /nointeractive >> %LOGPATH%\%LOGFILE%
  76. wmic product where "name like 'JavaFX%%'" call uninstall /nointeractive
  77. echo %CUR_DATE% %TIME%   Regular uninstallers done.
  78.  
  79.  
  80. ::::::::::::::::::::::
  81. :: REGISTRY CLEANUP ::
  82. ::::::::::::::::::::::
  83. :: Search for leftover registry keys
  84. echo %CUR_DATE% %TIME%   Commencing registry cleanup...>> %LOGPATH%\%LOGFILE%
  85. echo %CUR_DATE% %TIME%   Commencing registry cleanup...
  86. echo %CUR_DATE% %TIME%   Searching for residual Java Runtime registry keys...>> %LOGPATH%\%LOGFILE%
  87. echo %CUR_DATE% %TIME%   Searching for residual Java Runtime registry keys...
  88. reg query HKLM\software\classes\installer\products /f "J2SE" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
  89. reg query HKLM\software\classes\installer\products /f "Java(tm) 6" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
  90. reg query HKLM\software\classes\installer\products /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
  91. reg query HKLM\software\classes\installer\products /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\deljava.txt
  92.  
  93. :: List the leftover registry keys
  94. echo %CUR_DATE% %TIME%   Listing residual keys...>> %LOGPATH%\%LOGFILE%
  95. echo %CUR_DATE% %TIME%   Listing residual keys...
  96. echo.>> %LOGPATH%\%LOGFILE%
  97. echo.
  98. type %temp%\deljava.txt>> %LOGPATH%\%LOGFILE%
  99. type %temp%\deljava.txt
  100. echo.>> %LOGPATH%\%LOGFILE%
  101. echo.
  102.  
  103. :: Backup the various registry keys that will get deleted (if they exist)
  104. echo %CUR_DATE% %TIME%   Backing up keys...>> %LOGPATH%\%LOGFILE%
  105. echo %CUR_DATE% %TIME%   Backing up keys...
  106. if exist "%TEMP%\java_purge_registry_backup" rmdir /s /q "%TEMP%\java_purge_registry_backup" >NUL
  107. mkdir %TEMP%\java_purge_registry_backup >NUL
  108. for /f "tokens=* delims= " %%a in (%TEMP%\deljava.txt) do (reg query %%a) >> %TEMP%\java_purge_registry_backup\java_reg_keys_1.bak
  109. reg export "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" "%TEMP%\java_purge_registry_backup\java_reg_keys_2.reg" >> %LOGPATH%\%LOGFILE%
  110. reg export "HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\JavaSoft\Java Runtime Environment" "%TEMP%\java_purge_registry_backup\java_reg_keys_3.reg" >> %LOGPATH%\%LOGFILE%
  111. echo.
  112. echo %CUR_DATE% %TIME%   Residual keys backed up to %TEMP%\java_purge_registry_backup\ >> %LOGPATH%\%LOGFILE%
  113. echo %CUR_DATE% %TIME%   Residual keys backed up to %TEMP%\java_purge_registry_backup\
  114. echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it! >> %LOGPATH%\%LOGFILE%
  115. echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it!
  116.  
  117. :: Purge leftover registry keys
  118. echo %CUR_DATE% %TIME%   Purging keys...>> %LOGPATH%\%LOGFILE%
  119. echo %CUR_DATE% %TIME%   Purging keys...
  120. echo.
  121. for /f "tokens=* delims= " %%a in (%TEMP%\deljava.txt) do reg delete %%a /f >> %LOGPATH%\%LOGFILE%
  122. del /S /Q %TEMP%\deljava.txt
  123. reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /f >> %LOGPATH%\%LOGFILE%
  124. reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\JavaSoft\Java Runtime Environment" /f >> %LOGPATH%\%LOGFILE%
  125. echo.
  126. echo %CUR_DATE% %TIME%   Residual keys purged. Registry cleanup done.>> %LOGPATH%\%LOGFILE%
  127. echo %CUR_DATE% %TIME%   Residual keys purged. Registry cleanup done.
  128.  
  129.  
  130. :::::::::::::::::::
  131. :: FILE CLEANUP  ::
  132. :::::::::::::::::::
  133. echo %CUR_DATE% %TIME%   Commencing file and directory cleanup...>> %LOGPATH%\%LOGFILE%
  134. echo %CUR_DATE% %TIME%   Commencing file and directory cleanup...
  135.  
  136. :: Nuke 32-bit Java installation directories
  137. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles(x86)%\jre*" directories...>> %LOGPATH%\%LOGFILE%
  138. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles(x86)%\jre*" directories...
  139. FOR /D /R "%ProgramFiles(x86)%\Java\" %%X IN (j2re*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
  140. FOR /D /R "%ProgramFiles(x86)%\Java" %%X IN (jre*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
  141.  
  142. :: Nuke 64-bit Java installation directories
  143. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles%\jre*" directories...>> %LOGPATH%\%LOGFILE%
  144. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles%\jre*" directories...
  145. FOR /D /R "%ProgramFiles%\Java\" %%X IN (j2re*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
  146. FOR /D /R "%ProgramFiles%\Java" %%X IN (jre*) DO RMDIR /S /Q "%%X">> %LOGPATH%\%LOGFILE%
  147. echo %CUR_DATE% %TIME%   Done.>> %LOGPATH%\%LOGFILE%
  148. echo %CUR_DATE% %TIME%   Done.
  149.  
  150. :: Miscellaneous stuff
  151. echo %CUR_DATE% %TIME%   Searching for and purging other Java Runtime-related directories...>> %LOGPATH%\%LOGFILE%
  152. echo %CUR_DATE% %TIME%   Searching for and purging other Java Runtime-related directories...
  153. echo.>> %LOGPATH%\%LOGFILE%
  154. del /F /Q %SystemDrive%\1033.mst>> %LOGPATH%\%LOGFILE%
  155. del /F /S /Q "%SystemDrive%\J2SE Runtime Environment*">> %LOGPATH%\%LOGFILE%
  156. echo.>> %LOGPATH%\%LOGFILE%
  157.  
  158. :: Done.
  159. echo %CUR_DATE% %TIME%   File and directory cleanup done.>> %LOGPATH%\%LOGFILE%
  160. echo %CUR_DATE% %TIME%   File and directory cleanup done.
  161. echo %CUR_DATE% %TIME%   All versions of the Java Runtime have been removed. Recommend rebooting and washing your hands.>> %LOGPATH%\%LOGFILE%
  162. echo %CUR_DATE% %TIME%   All versions of the Java Runtime have been removed. Recommend rebooting and washing your hands.
  163. echo %CUR_DATE% %TIME%   Registry hive backups here: %TEMP%\java_purge_registry_backup\>> %LOGPATH%\%LOGFILE%
  164. echo %CUR_DATE% %TIME%   Registry hive backups here: %TEMP%\java_purge_registry_backup\
  165. echo %CUR_DATE% %TIME%   Log file here: %LOGPATH%\%LOGFILE%>> %LOGPATH%\%LOGFILE%
  166. echo %CUR_DATE% %TIME%   Log file here: %LOGPATH%\%LOGFILE%
  167.  
  168. REM Return exit code to SCCM/PDQ Deploy/etc
  169. exit /B %EXIT_CODE%
Add Comment
Please, Sign In to add comment