Я настраиваю систему, чтобы поддерживать Java в нашем офисе в актуальном состоянии. У всех есть разные версии Java, многие из них старые и небезопасные, а некоторые начиная с 1.4. У меня есть сервер System Center Essentials, который может выдвигать и молча запускать MSI-файл, и я уже проверил, что он может установить последнюю версию Java. Но старые версии (например, 1.4) не удаляются установщиком, поэтому мне нужно удалить их. Все работают под управлением Windows XP.
Удачное совпадение заключается в том, что Sun только что приобрел Oracle, а Oracle теперь изменил все экземпляры Sun на Oracle в Java. Поэтому мне не нужно беспокоиться об удалении последней версии Java, потому что я могу просто выполнить поиск и удалить все программы Sun Java.
В сообщении на форуме я нашел следующий пакетный скрипт, который выглядел многообещающе:
@echo off & cls
Rem List all Installation subkeys from uninstall key.
echo Searching Registry for Java Installs
for /f %%I in ('reg query HKLM\SOFTWARE\microsoft\windows\currentversion\uninstall') do echo %%I | find "{" > nul && call :All-Installations %%I
echo Search Complete..
goto :EOF
:All-Installations
Rem Filter out all but the Sun Installations
for /f "tokens=2*" %%T in ('reg query %1 /v Publisher 2^> nul') do echo %%U | find "Sun" > nul && call :Sun-Installations %1
goto :EOF
:Sun-Installations
Rem Filter out all but the Sun-Java Installations. Note the tilda + n, which drops all the subkeys from the path
for /f "tokens=2*" %%T in ('reg query %1 /v DisplayName 2^> nul') do echo . Uninstalling - %%U: | find "Java" && call :Sun-Java-Installs %~n1
goto :EOF
:Sun-Java-Installs
Rem Run Uninstaller for the installation
MsiExec.exe /x%1 /qb
echo . Uninstall Complete, Resuming Search..
goto :EOF
Однако, когда я запускаю скрипт, я получаю следующий вывод:
Searching Registry for Java Installs
'DEV_24x6' is not recognized as an internal or external command,
operable program or batch file.
'SUBSYS_542214F1' is not recognized as an internal or external command,
operable program or batch file.
А потом, кажется, зависает, и я Ctrl-C, чтобы остановить его.
Прочитав сценарий, я не все понимаю, но не знаю, почему он пытается запустить части ключей реестра в виде программ. Что не так с пакетным скриптом? Как я могу это исправить, чтобы я мог как-то превратить его в MSI и развернуть его для всех, чтобы очистить этот офис?
Или, в качестве альтернативы, вы можете предложить лучшее решение или существующий файл MSI, чтобы делать то, что мне нужно? Я просто хочу убедиться, что все старые версии Java отключены от всех компьютеров, поскольку я слышал об эксплойтах, которые приводят к загрузке веб-страниц с использованием старых версий Java, и я хочу их избежать.
источник
Ответы:
Вот то, что мы используем, прекрасно работает в качестве сценария запуска:
источник
Эта строка удалит все версии JAVA:
wmic product, где "name like 'Java %% %%'" вызывает удаление / nointeractive
источник
Выдержка из: http://www.java.com/en/download/faq/remove_olderversions.xml
Я нашел следующий VBScript, который теоретически правильно удаляет предыдущие версии Java. Лучше всего читать снизу вверх , так как другие довели его до совершенства:
http://www.appdeploy.com/messageboards/tm.asp?m=29809
источник
Проверьте эту простую, но очень полезную команду:
украден отсюда
источник
Там какие - то VBScript код здесь , что вы должны быть в состоянии развернуть с помощью групповой политики без MSI.
источник
У проверенного ответа с самым высоким рейтингом есть некоторые проблемы. CLSID серии 6.0 неверны, основываясь на моем тестировании.
Вот CLSID, которые я нашел для каждой серии JRE. Замените xx на нужные версии, которые вы хотите удалить. Пожалуйста, используйте с /server//a/187552/172014
Я также рекомендую добавить / norestart после / q на тот случай, если MSI JRE серии 1.4.2 потребует перезагрузки.
источник
Вы все еще можете выполнить с помощью пакетного сценария. Я использую следующий скрипт;
Вы можете адаптировать / изменить так, как вы хотите, чтобы удовлетворить ваши потребности. ;-)
источник
Это сработало для меня. Он удаляет все версии Java (32-битные и 64-битные) до последней версии (которая на момент написания статьи была v8.0.66).
источник