Advertisement
Guest User

[BATCH] Java Runtime Nuker v1.2

a guest
Jul 13th, 2013
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. :: Purpose:       Nuke ALL versions of the Java Runtime, series 3 through 7, x86 and x64, and JavaFX
  2. ::                Leaves Java Development Kit installations intact. Puts the lotion on its skin.
  3. :: Requirements:  local admin rights
  4. :: Author:        vocatus on reddit.com/r/sysadmin and /r/usefulscripts
  5. ::                additional thanks to:
  6. ::                 - reddit.com/user/cannibalkitteh  for additional registry cleaning locations
  7. ::                 - forums.oracle.com/people/mattmn for a lot of stuff from his Java removal script
  8. :: History:       1.2 + Added a lot more comments, so you can see what's happening if you so desire
  9. ::                    + Major overhaul to WMIC uninstallation section:
  10. ::                       - Now wildcard-matches ALL JRE GUIDs, including future revisions to current products (3-7)
  11. ::                       - Vastly improved WMIC wildcard matching precision
  12. ::                    + Major overhaul to file and directory section, thanks to 'mattmn' on the Oracle forums
  13. ::                    + Added additional registry location cleaning, thanks to /u/cannibalkitteh for the suggestion
  14. ::                       - HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
  15. ::                       - HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
  16. ::                    + Added Chrome to the list of browsers to kill before starting
  17. ::                    * Logging improvements
  18. ::                    / Switched all browser and Java kill lines to use /T flag (terminate child processes)
  19. ::                1.1 + Massive overhaul of functionality and logging
  20. ::                1.0   Initial write
  21.  
  22. :: Prep
  23. @echo off
  24. set VERSION=1.2
  25. set UPDATED=2013-07-13
  26.  
  27. :::::::::::::::
  28. :: VARIABLES :: -- set these if you'd like
  29. :::::::::::::::
  30. :: Rules for variables:
  31. ::  * NO quotes!                       (bad:  "c:\directory\path"       )
  32. ::  * NO trailing slashes on the path! (bad:   c:\directory\            )
  33. ::  * Spaces are okay                  (okay:  c:\my folder\with spaces )
  34. ::  * Network paths are okay           (okay:  \\server\share name      )
  35. ::                                     (       \\172.16.1.5\share name  )
  36.  
  37. :: Log settings
  38. set LOGPATH=%SystemDrive%\Logs
  39. set LOGFILE=%COMPUTERNAME%_java_runtime_removal.log
  40.  
  41.  
  42. :: =============================================================================== ::
  43. :: Everything below this line is similar to a feral badger: Look, but Do Not Touch ::
  44. :: =============================================================================== ::
  45.  
  46. :: Create the log directory if it doesn't exist
  47. if not exist %LOGPATH% mkdir %LOGPATH%
  48.  
  49. :: Get the date into a format we can use (ISO standard date format)
  50. set CUR_DATE=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%
  51.  
  52.  
  53. ::::::::::
  54. :: PREP ::
  55. ::::::::::
  56. :: Log that we started
  57. echo.
  58. echo  JAVA RUNTIME NUKER
  59. echo  v%VERSION%, updated %UPDATED%
  60. echo.
  61. echo %CUR_DATE% %TIME%   Beginning removal of Java Runtimes (series 3-7, x86 and x64) and JavaFX...>> "%LOGPATH%\%LOGFILE%"
  62. echo %CUR_DATE% %TIME%   Beginning removal of Java Runtimes (series 3-7, x86 and x64) and JavaFX...
  63.  
  64. :: Kill all browsers and running Java instances first
  65. echo %CUR_DATE% %TIME%   Killing all running browsers and Java instances first...>> "%LOGPATH%\%LOGFILE%"
  66. echo %CUR_DATE% %TIME%   Killing all running browsers and Java instances first...
  67. echo.
  68. taskkill /f /im java.exe /T >> "%LOGPATH%\%LOGFILE%"
  69. taskkill /f /im javaw.exe /T >> "%LOGPATH%\%LOGFILE%"
  70. taskkill /f /im javaws.exe /T >> "%LOGPATH%\%LOGFILE%"
  71. taskkill /f /im jqs.exe /T >> "%LOGPATH%\%LOGFILE%"
  72. taskkill /f /im jusched.exe /T >> "%LOGPATH%\%LOGFILE%"
  73. taskkill /f /im iexplore.exe /T >> "%LOGPATH%\%LOGFILE%"
  74. taskkill /f /im iexplorer.exe /T >> "%LOGPATH%\%LOGFILE%"
  75. taskkill /f /im firefox.exe /T >> "%LOGPATH%\%LOGFILE%"
  76. taskkill /f /im chrome.exe /T >> "%LOGPATH%\%LOGFILE%"
  77. echo.
  78.  
  79.  
  80. :::::::::::::::::::::::::
  81. :: UNINSTALLER SECTION :: -- Basically here we just brute-force every "normal" method for
  82. :::::::::::::::::::::::::    removing Java, before resorting to more painstaking methods later
  83.  
  84. echo %CUR_DATE% %TIME%   Targeting individual JRE versions...>> "%LOGPATH%\%LOGFILE%"
  85. echo %CUR_DATE% %TIME%   Targeting individual JRE versions...
  86. echo %CUR_DATE% %TIME%   This might take a few minutes. Don't close this window.
  87.  
  88. :: Okay, so all JRE runtimes (series 4-7) use product GUIDs, with certain numbers that increment with each new update (e.g. Update 25)
  89. :: This makes it easy to catch ALL of them through liberal use of WMIC wildcards ("_" is single character, "%" is any number of characters)
  90. :: Additionally, JRE 6 introduced 64-bit runtimes, so in addition to the two-digit Update revision number (e.g. update 34), we also now
  91. :: check for the architecture type, which always equals '32' or '64'. First wildcard is the architecture, second is the revision/update number.
  92.  
  93. :: JRE 7
  94. echo %CUR_DATE% %TIME%   JRE 7...>> "%LOGPATH%\%LOGFILE%"
  95. echo %CUR_DATE% %TIME%   JRE 7...
  96. wmic product where "IdentifyingNumber like '{26A24AE4-039D-4CA4-87B4-2F8__170__FF}'" call uninstall /nointeractive >> "%LOGPATH%\%LOGFILE%"
  97.  
  98. :: JRE 6
  99. echo %CUR_DATE% %TIME%   JRE 6...>> "%LOGPATH%\%LOGFILE%"
  100. echo %CUR_DATE% %TIME%   JRE 6...
  101. :: 1st line is for updates 23-xx, after 64-bit runtimes were introduced.
  102. :: 2nd line is for updates 1-22, before Oracle released 64-bit JRE 6 runtimes
  103. wmic product where "IdentifyingNumber like '{26A24AE4-039D-4CA4-87B4-2F8__160__FF}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
  104. wmic product where "IdentifyingNumber like '{3248F0A8-6813-11D6-A77B-00B0D0160__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
  105.  
  106. :: JRE 5
  107. echo %CUR_DATE% %TIME%   JRE 5...>> "%LOGPATH%\%LOGFILE%"
  108. echo %CUR_DATE% %TIME%   JRE 5...
  109. wmic product where "IdentifyingNumber like '{3248F0A8-6813-11D6-A77B-00B0D0150__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
  110.  
  111. :: JRE 4
  112. echo %CUR_DATE% %TIME%   JRE 4...>> "%LOGPATH%\%LOGFILE%"
  113. echo %CUR_DATE% %TIME%   JRE 4...
  114. wmic product where "IdentifyingNumber like '{7148F0A8-6813-11D6-A77B-00B0D0142__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
  115.  
  116. :: JRE 3
  117. echo %CUR_DATE% %TIME%   JRE 3 (AKA Java 2 Runtime v1.3.xx)...>> "%LOGPATH%\%LOGFILE%"
  118. echo %CUR_DATE% %TIME%   JRE 3 (AKA Java 2 Runtime v1.3.xx)...
  119. :: This version is so old we have to resort to a different method of removing it
  120. :: Java 2 Runtime Environment Standard Edition v1.3.1_25-00
  121. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_25\Uninst.isu" -a
  122. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_24\Uninst.isu" -a
  123. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_23\Uninst.isu" -a
  124. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_22\Uninst.isu" -a
  125. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_21\Uninst.isu" -a
  126. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_20\Uninst.isu" -a
  127. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_19\Uninst.isu" -a
  128. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_18\Uninst.isu" -a
  129. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_17\Uninst.isu" -a
  130. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_16\Uninst.isu" -a
  131. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_15\Uninst.isu" -a
  132. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_14\Uninst.isu" -a
  133. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_13\Uninst.isu" -a
  134. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_12\Uninst.isu" -a
  135. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_11\Uninst.isu" -a
  136. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_10\Uninst.isu" -a
  137. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_09\Uninst.isu" -a
  138. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_08\Uninst.isu" -a
  139. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_07\Uninst.isu" -a
  140. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_06\Uninst.isu" -a
  141. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_05\Uninst.isu" -a
  142. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_04\Uninst.isu" -a
  143. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_03\Uninst.isu" -a
  144. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_02\Uninst.isu" -a
  145. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_01\Uninst.isu" -a
  146. %SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3\Uninst.isu" -a
  147.  
  148.  
  149. :: Run wildcard uninstallers
  150. echo %CUR_DATE% %TIME%   Now running WMIC wildcard catchall uninstallation...>> "%LOGPATH%\%LOGFILE%"
  151. echo %CUR_DATE% %TIME%   Now running WMIC wildcard catchall uninstallation...
  152. wmic product where "name like '%%J2SE Runtime%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
  153. wmic product where "name like 'Java%%Runtime%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
  154. wmic product where "name like 'JavaFX%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
  155.  
  156. echo %CUR_DATE% %TIME%   Done.>> "%LOGPATH%\%LOGFILE%"
  157. echo %CUR_DATE% %TIME%   Done.
  158.  
  159.  
  160. ::::::::::::::::::::::
  161. :: REGISTRY CLEANUP :: -- This is where it gets hairy. Don't read ahead if you have a weak constitution.
  162. ::::::::::::::::::::::
  163. echo %CUR_DATE% %TIME%   Commencing registry cleanup...>> "%LOGPATH%\%LOGFILE%"
  164. echo %CUR_DATE% %TIME%   Commencing registry cleanup...
  165. echo %CUR_DATE% %TIME%   Searching for residual registry keys...>> "%LOGPATH%\%LOGFILE%"
  166. echo %CUR_DATE% %TIME%   Searching for residual registry keys...
  167.  
  168. :: Search MSIExec installer class hive for keys
  169. echo %CUR_DATE% %TIME%   Looking in HKLM\software\classes\installer\products...>> "%LOGPATH%\%LOGFILE%"
  170. echo %CUR_DATE% %TIME%   Looking in HKLM\software\classes\installer\products...
  171. reg query HKLM\software\classes\installer\products /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  172. reg query HKLM\software\classes\installer\products /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  173. reg query HKLM\software\classes\installer\products /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  174. reg query HKLM\software\classes\installer\products /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  175.  
  176. :: Search the Add/Remove programs list (this helps with broken Java installations)
  177. echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall...>> "%LOGPATH%\%LOGFILE%"
  178. echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall...
  179. reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  180. reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  181. reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  182. reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  183.  
  184. :: Search the Add/Remove programs list, x86/Wow64 node (this helps with broken Java installations)
  185. echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall...>> "%LOGPATH%\%LOGFILE%"
  186. echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall...
  187. reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  188. reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  189. reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  190. reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
  191.  
  192.  
  193. :: List the leftover registry keys
  194. echo %CUR_DATE% %TIME%   Found these keys...>> "%LOGPATH%\%LOGFILE%"
  195. echo %CUR_DATE% %TIME%   Found these keys...
  196. echo.>> "%LOGPATH%\%LOGFILE%"
  197. echo.
  198. type %TEMP%\java_purge_registry_keys.txt>> "%LOGPATH%\%LOGFILE%"
  199. type %TEMP%\java_purge_registry_keys.txt
  200. echo.>> "%LOGPATH%\%LOGFILE%"
  201. echo.
  202.  
  203. :: Backup the various registry keys that will get deleted (if they exist)
  204. :: We do this mainly because we're using wildcards, so we want a method to roll back if we accidentally nuke the wrong thing
  205. echo %CUR_DATE% %TIME%   Backing up keys...>> "%LOGPATH%\%LOGFILE%"
  206. echo %CUR_DATE% %TIME%   Backing up keys...
  207. if exist "%TEMP%\java_purge_registry_backup" rmdir /s /q "%TEMP%\java_purge_registry_backup" >NUL
  208. mkdir %TEMP%\java_purge_registry_backup >NUL
  209. :: This line walks through the file we generated and dumps each key to a file
  210. for /f "tokens=* delims= " %%a in (%TEMP%\java_purge_registry_keys.txt) do (reg query %%a) >> %TEMP%\java_purge_registry_backup\java_reg_keys_1.bak
  211.  
  212. echo.
  213. echo %CUR_DATE% %TIME%   Keys backed up to %TEMP%\java_purge_registry_backup\ >> "%LOGPATH%\%LOGFILE%"
  214. echo %CUR_DATE% %TIME%   Keys backed up to %TEMP%\java_purge_registry_backup\
  215. echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it! >> "%LOGPATH%\%LOGFILE%"
  216. echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it!
  217.  
  218. :: Purge the keys
  219. echo %CUR_DATE% %TIME%   Purging keys...>> "%LOGPATH%\%LOGFILE%"
  220. echo %CUR_DATE% %TIME%   Purging keys...
  221. echo.
  222. :: This line walks through the file we generated and deletes each key listed
  223. for /f "tokens=* delims= " %%a in (%TEMP%\java_purge_registry_keys.txt) do reg delete %%a /va /f>> "%LOGPATH%\%LOGFILE%"
  224.  
  225. :: These lines delete some specific Java locations
  226. :: ! These keys AREN'T backed up (as opposed to the ones above) because here we are specifically targeting known Java keys, whereas
  227. ::   above we were nuking registry keys based on wildcard searches, so those need backups in case we nuke something we didn't want to.
  228.  
  229. :: Delete keys for 32-bit Java installations on a 64-bit copy of Windows
  230. reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Auto Update" /va /f>> "%LOGPATH%\%LOGFILE%"
  231. reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Plug-in" /va /f>> "%LOGPATH%\%LOGFILE%"
  232. reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" /va /f>> "%LOGPATH%\%LOGFILE%"
  233. reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update" /va /f>> "%LOGPATH%\%LOGFILE%"
  234. reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Web Start" /va /f>> "%LOGPATH%\%LOGFILE%"
  235. reg delete "HKLM\SOFTWARE\Wow6432Node\JreMetrics" /va /f>> "%LOGPATH%\%LOGFILE%"
  236.  
  237. :: Delete keys for for 32-bit and 64-bit Java installations on matching Windows architecture
  238. reg delete "HKLM\SOFTWARE\JavaSoft\Auto Update" /va /f>> "%LOGPATH%\%LOGFILE%"
  239. reg delete "HKLM\SOFTWARE\JavaSoft\Java Plug-in" /va /f>> "%LOGPATH%\%LOGFILE%"
  240. reg delete "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" /va /f>> "%LOGPATH%\%LOGFILE%"
  241. reg delete "HKLM\SOFTWARE\JavaSoft\Java Update" /va /f>> "%LOGPATH%\%LOGFILE%"
  242. reg delete "HKLM\SOFTWARE\JavaSoft\Java Web Start" /va /f>> "%LOGPATH%\%LOGFILE%"
  243. reg delete "HKLM\SOFTWARE\JreMetrics" /va /f>> "%LOGPATH%\%LOGFILE%"
  244.  
  245.  
  246. echo.
  247. echo %CUR_DATE% %TIME%   Keys purged.>> "%LOGPATH%\%LOGFILE%"
  248. echo %CUR_DATE% %TIME%   Keys purged.
  249. echo %CUR_DATE% %TIME%   Registry cleanup done.>> "%LOGPATH%\%LOGFILE%"
  250. echo %CUR_DATE% %TIME%   Registry cleanup done.
  251. echo.
  252.  
  253. ::::::::::::::::::::::::::::::::
  254. :: FILE AND DIRECTORY CLEANUP ::
  255. ::::::::::::::::::::::::::::::::
  256. echo %CUR_DATE% %TIME%   Commencing file and directory cleanup...>> "%LOGPATH%\%LOGFILE%"
  257. echo %CUR_DATE% %TIME%   Commencing file and directory cleanup...
  258.  
  259. :: Kill accursed Java tasks in Task Scheduler
  260. echo %CUR_DATE% %TIME%   Removing Java tasks from the Windows Task Scheduler...>> "%LOGPATH%\%LOGFILE%"
  261. echo %CUR_DATE% %TIME%   Removing Java tasks from the Windows Task Scheduler...
  262. echo.
  263. del /F /Q %WINDIR%\tasks\Java*.job>> "%LOGPATH%\%LOGFILE%"
  264. del /F /Q %WINDIR%\System32\tasks\Java*.job>> "%LOGPATH%\%LOGFILE%"
  265. del /F /Q %WINDIR%\SysWOW64\tasks\Java*.job>> "%LOGPATH%\%LOGFILE%"
  266. echo.
  267.  
  268. :: Kill the accursed Java Quickstarter and Updater
  269. echo %CUR_DATE% %TIME%   De-registering and removing Java Quickstarter and Updater...>> "%LOGPATH%\%LOGFILE%"
  270. echo %CUR_DATE% %TIME%   De-registering and removing Java Quickstarter and Updater...
  271. net stop JavaQuickStarterService>> "%LOGPATH%\%LOGFILE%"
  272. sc delete JavaQuickStarterService>> "%LOGPATH%\%LOGFILE%"
  273. net stop jusched>> "%LOGPATH%\%LOGFILE%"
  274. sc delete jusched>> "%LOGPATH%\%LOGFILE%"
  275. "%ProgramFiles(x86)%\Java\jre6\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
  276. "%ProgramFiles(x86)%\Java\jre7\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
  277. "%ProgramFiles%\Java\jre6\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
  278. "%ProgramFiles%\Java\jre7\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
  279. "%ProgramFiles(x86)%\Java\jre6\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
  280. "%ProgramFiles(x86)%\Java\jre7\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
  281. "%ProgramFiles%\Java\jre6\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
  282. "%ProgramFiles%\Java\jre7\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
  283. msiexec.exe /x {4A03706F-666A-4037-7777-5F2748764D10} /qn /norestart
  284. echo.
  285.  
  286. :: Nuke 32-bit Java installation directories
  287. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles(x86)%\Java\jre*" directories...>> "%LOGPATH%\%LOGFILE%"
  288. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles(x86)%\Java\jre*" directories...
  289. FOR /D /R "%ProgramFiles(x86)%\Java\" %%X IN (j2re*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
  290. FOR /D /R "%ProgramFiles(x86)%\Java\" %%X IN (jre*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
  291. rmdir /S /Q "%ProgramFiles(x86)%\JavaSoft\JRE">> "%LOGPATH%\%LOGFILE%"
  292.  
  293. :: Nuke 64-bit Java installation directories
  294. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles%\Java\jre*" directories...>> "%LOGPATH%\%LOGFILE%"
  295. echo %CUR_DATE% %TIME%   Removing "%ProgramFiles%\Java\jre*" directories...
  296. FOR /D /R "%ProgramFiles%\Java\" %%X IN (j2re*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
  297. FOR /D /R "%ProgramFiles%\Java\" %%X IN (jre*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
  298. rmdir /S /Q "%ProgramFiles%\JavaSoft\JRE">> "%LOGPATH%\%LOGFILE%"
  299.  
  300. :: Miscellaneous stuff, sometimes left over by the installers
  301. echo %CUR_DATE% %TIME%   Searching for and purging other Java Runtime-related directories...>> "%LOGPATH%\%LOGFILE%"
  302. echo %CUR_DATE% %TIME%   Searching for and purging other Java Runtime-related directories...
  303. echo.
  304. del /F /Q %SystemDrive%\1033.mst>> "%LOGPATH%\%LOGFILE%"
  305. del /F /S /Q "%SystemDrive%\J2SE Runtime Environment*">> "%LOGPATH%\%LOGFILE%"
  306. echo.
  307.  
  308. :: Done.
  309. echo %CUR_DATE% %TIME%   File and directory cleanup done.>> "%LOGPATH%\%LOGFILE%"
  310. echo %CUR_DATE% %TIME%   File and directory cleanup done.
  311. echo. >> "%LOGPATH%\%LOGFILE%"
  312. echo.
  313. echo %CUR_DATE% %TIME%   JAVA NUKER COMPLETE. Recommend rebooting and washing your hands.>> "%LOGPATH%\%LOGFILE%"
  314. echo %CUR_DATE% %TIME%   JAVA NUKER COMPLETE. Recommend rebooting and washing your hands.
  315. echo %CUR_DATE% %TIME%     Registry hive backups: %TEMP%\java_purge_registry_backup\>> "%LOGPATH%\%LOGFILE%"
  316. echo %CUR_DATE% %TIME%     Registry hive backups: %TEMP%\java_purge_registry_backup\
  317. echo %CUR_DATE% %TIME%     Log file: "%LOGPATH%\%LOGFILE%">> "%LOGPATH%\%LOGFILE%"
  318. echo %CUR_DATE% %TIME%     Log file: "%LOGPATH%\%LOGFILE%"
  319.  
  320. :: Return exit code to SCCM/PDQ Deploy/Psexec/etc
  321. pause
  322. exit /B %EXIT_CODE%
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement