Je mets en place un système pour garder Java dans notre bureau à jour. Tout le monde a toutes les différentes versions de Java, beaucoup d'entre elles sont anciennes et peu sûres, et certaines remontent à 1,4. J'ai un serveur System Center Essentials qui peut pousser et exécuter silencieusement un fichier .msi, et j'ai déjà testé qu'il pouvait installer la dernière version de Java. Mais les anciennes versions (telles que 1.4) ne sont pas supprimées par le programme d'installation, je dois donc les désinstaller. Tout le monde exécute Windows XP.
La coïncidence intéressante est que Sun vient d'être acheté par Oracle et Oracle a maintenant changé toutes les instances de "Sun" en "Oracle" en Java. Ainsi, je ne peux pas m'inquiéter de la désinstallation de la dernière version de Java, car je peux simplement faire une recherche et désinstaller tous les programmes Sun Java.
J'ai trouvé le script batch suivant sur un post de forum qui semblait prometteur:
@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
Cependant, lorsque j'exécute le script, j'obtiens la sortie suivante:
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.
Et puis il semble se bloquer et je ctrl-c pour l'arrêter.
En lisant le script, je ne comprends pas tout, mais je ne sais pas pourquoi il essaie d'exécuter des morceaux de clés de registre en tant que programmes. Quel est le problème avec le script batch? Comment puis-je le réparer, afin de pouvoir le transformer en quelque sorte en MSI et le déployer à tout le monde pour nettoyer ce bureau?
Ou bien, pouvez-vous suggérer une meilleure solution ou un fichier MSI existant pour faire ce dont j'ai besoin? Je veux juste m'assurer de retirer toutes les anciennes versions de Java des ordinateurs de tout le monde, car j'ai entendu parler d'exploits qui provoquent le chargement de pages Web à l'aide d'anciennes versions de Java et je veux les éviter.
la source
Réponses:
Ce qui suit est ce que nous utilisons, fonctionne très bien comme script de démarrage:
la source
Cette ligne désinstallera toutes les versions de JAVA:
produit wmic où "nom comme 'Java %% %%'" appelle désinstallation / non interactif
la source
Extrait de: http://www.java.com/en/download/faq/remove_olderversions.xml
J'ai trouvé le VBScript suivant qui, en théorie, supprime correctement les versions précédentes de Java. Mieux vaut lire de bas en haut , car d'autres l'ont peaufiné à la perfection:
http://www.appdeploy.com/messageboards/tm.asp?m=29809
la source
Vérifiez cette commande simple mais très utile:
volé d' ici
la source
Il y a du code vbscript ici que vous devriez pouvoir déployer via la stratégie de groupe sans msi.
la source
La réponse vérifiée la plus votée présente certains problèmes. Les CLSID de la série 6.0 sont incorrects d'après mes tests.
Voici les CLSID que j'ai trouvés pour fonctionner pour chaque série JRE. Remplacez xx pour les versions souhaitées que vous souhaitez supprimer. Veuillez utiliser avec /server//a/187552/172014
Je recommande également d'ajouter / norestart après / q au cas où les MSI JRE de la série 1.4.2 souhaitent un redémarrage.
la source
Vous pouvez toujours accomplir en utilisant le script Batch. J'utilise le script suivant;
Vous pouvez adapter / modifier la façon dont vous souhaitez répondre à vos besoins. ;-)
la source
Cela a fonctionné pour moi. Il désinstalle toutes les versions de Java (32 bits et 64 bits) avant la dernière version (qui est la v8.0.66 au moment de la rédaction).
la source