Page 1 sur 1

[..] Script pour la suppression des versions de Java

Posté : lun. 29 août 2011 11:43
par Neustradamus
Bonjour,

Je recherche un script permettant de supprimer automatiquement toutes les versions de Java SE qui ont été installées pour ainsi lancer dans la fouler l'installation d'une nouvelle version.

Merci d'avance!

Re: [..] Script pour la suppression des versions de Java

Posté : lun. 29 août 2011 21:00
par mikell
Désolé j'ai pas le temps de faire le script complet mais voilà l'idée

Tu fais une boucle qui va chercher dans le registre à :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
toutes les clés qui contiennent une sous-clé "DisplayName" avec le mot "java" et une sous-clé "UninstallString"
Ces clés obtenues seront (exemple) de la forme : {26A24AE4-039D-4CA4-87B4-2F83216023FF}
Tu les mets en variable ($cle par exemple) et tu mets cette instruction :
RunWait('msiexec /x "' & $cle & '" /qn') pour une désinstallation silencieuse

EDIT
y a plus simple
Ce code est pour tester, pour désinstaller ya une petite modif à faire :

Code : Tout sélectionner

$text = "Liste" & @CRLF & "------------------" & @CRLF 
Dim $Obj_WMIService = ObjGet('winmgmts:\\' & "localhost" & '\root\cimv2')
If (IsObj($Obj_WMIService)) And (Not @error) Then
    Dim $colItems = $Obj_WMIService.ExecQuery("Select * from Win32_Product where Name like '%Java%'")
    Local $objItem
    For $objItem In $colItems
        $text &= $objItem.Name & @CRLF
    ; [color=#FF0000]$objItem.Uninstall()  ; <= à valider pour désinstallation[/color]
    Next
EndIf
MsgBox(0,"", $text)

Re: [..] Script pour la suppression des versions de Java

Posté : mar. 20 sept. 2011 08:22
par Neustradamus
Bonjour,

Merci pour ce script mais je ne suis pas un pro, si quelqu'un pourrait faire un script complet, tout le monde serait heureux :)

Merci beaucoup d'avance!

Re: [..] Script pour la suppression des versions de Java

Posté : mar. 20 sept. 2011 13:45
par mikell
Pas de problème mais 2 questions
1 - tu as testé le script ? déjà tel quel, il est opérationnel
2 - si ça doit être un peu plus complexe, avec fenêtre(s) de message, fichier log des versions désinstallées, choix entre programme silencieux ou gui, etc, alors il faut donner le plus de précisions possibles sur la forme souhaitée :wink:

Re: [..] Script pour la suppression des versions de Java

Posté : mer. 21 sept. 2011 12:56
par sksbir
salut Mikell, j'ai testé ton script, mais il doit y avoir un soucis avec l'objet appelé, car après avoir enlevé le filtre ( c'est devenu $Obj_WMIService.ExecQuery("Select * from Win32_Product") ) , je n'ai qu'un programme installé qui remonte dans la liste, alors que j'en ai au moins une trentaine d'installés, dont Java(TM) 6 Update 18

Ma plateforme de test est sous windows XP SP3, le PC est intégré à un domaine.

Re: [..] Script pour la suppression des versions de Java

Posté : mer. 21 sept. 2011 13:58
par mikell
A priori un script de désinstallation comme ça est fait pour fonctionner en local, mais on peut le faire marcher avec un autre pc du domaine avec des droits d'administrateur et si on a le nom de ce pc, dans ce cas il faut remplacer dans le script "localhost" par "le_nom_du_pc"
Faudrait vérifier dans le registre local si les clés que je mentionne dans mon premier post existent

Re: [..] Script pour la suppression des versions de Java

Posté : mer. 21 sept. 2011 14:38
par sksbir
mikell a écrit :A priori un script de désinstallation comme ça est fait pour fonctionner en local, mais on peut le faire marcher avec un autre pc du domaine avec des droits d'administrateur et si on a le nom de ce pc, dans ce cas il faut remplacer dans le script "localhost" par "le_nom_du_pc"
Faudrait vérifier dans le registre local si les clés que je mentionne dans mon premier post existent
Je n'ai pas dit que je voulais faire fonctionner ton script à distance. Je l'ai testé tel quel, en vue de faire l'inventaire des logiciels installés localement. Et ça ne renvoie qu'un seul logiciel.
Ce logiciel, je le trouve dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A3F37A60-38EE-4C85-AA68-74D2BEAB6009} , mais j'ai également une bonne centaine de sous-clés dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ qui correspondent bien à d'autres programmes installés.

Et chez toi, ton programme te renvoie l'intégralité des programmes installés ?

Re: [..] Script pour la suppression des versions de Java

Posté : mer. 21 sept. 2011 17:30
par Alex74
Bonjour,

sinon il existe déjà un utilitaire prévu à cet effet: JavaRa

Re: [..] Script pour la suppression des versions de Java

Posté : mer. 21 sept. 2011 22:26
par mikell
sksbir a écrit :Et chez toi, ton programme te renvoie l'intégralité des programmes installés ?
Il renvoie les programmes qui ont été installés avec l'installateur msiexec (dont chez moi Java 6 update 23 et Java Auto Updater)
Ce qu'il faut vérifier c'est si dans tes clés HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall il y en a qui concernent Java, pour ça utilise ce script :
► Afficher le texte
Alex74 a écrit :il existe déjà un utilitaire prévu à cet effet: JavaRa
Tout dépend de ce qu'on veut faire, résoudre le problème avec AutoIt pour Java peut donner la recette pour résoudre d'autres cas (les machins Adobe par exemple)

Re: [..] Script pour la suppression des versions de Java

Posté : jeu. 22 sept. 2011 12:47
par sksbir
@mikell : oui, ton programme qui explore les clés de registre fonctionne très bien lui, ce qui me fait dire que la version qui s'appuye sur winmgmts n'est pas au point.

Ceci dit, s'appuyer sur les clés de registre n'est pas tip top. Perso, j'utilise ce genre de programme qui a un seul inconvénient : ça ne fonctionne que pour les MSI.
► Afficher le texte

Re: [..] Script pour la suppression des versions de Java

Posté : jeu. 22 sept. 2011 19:38
par mikell
sksbir a écrit :... la version qui s'appuye sur winmgmts n'est pas au point.
Il manque probablement des paramètres d'authentification dans l'appel wmi
Les réseaux je connais pas bien c'est pour ça que sur ce coup je sèche Image
sksbir a écrit :s'appuyer sur les clés de registre n'est pas tip top.
Oui mais ça marche
Si mon script te renvoie des valeurs pour "UninstallString" alors on sait comment désinstaller... si en plus ces valeurs commencent par MsiExec.exe alors on peut désinstaller avec msiexec, et ça c'est facile, c'est 1 ligne à rajouter à mon script Image
Voilà ce que ça pourrait donner, fini (c'est spartiate mais clair)
► Afficher le texte

Re: [..] Script pour la suppression des versions de Java

Posté : ven. 23 sept. 2011 16:17
par TopXm
Hello :D

Sinon peut-être utiliser JavaRa qui est prévu à cet effet ;)

Site de l'éditeur

NB : J'ai fait un tuto de JavaRa sur un autre site, ne sachant pas si c'est correct de le poster ici je m'abstiendrai 8)

Re: [..] Script pour la suppression des versions de Java

Posté : ven. 23 sept. 2011 19:52
par mikell
@TopXm
le Mer 21 Sep 2011 17:30, Alex74 a écrit : il existe déjà un utilitaire prévu à cet effet: JavaRa
De plus, si tu lis les posts tu as vu mon commentaire là-dessus : JavaRa est très bien mais ici c'est un forum AutoIt

Re: [..] Script pour la suppression des versions de Java

Posté : lun. 26 sept. 2011 15:21
par Neustradamus
Bonjour,

Merci pour vos réponses :)

Mais le script donne uniquement la ou les clé(s).

Est-ce qu'il est possible que le script détecte les versions et les suppriment automatiquement à la suite (version plus récente à la plus vieille) ?

Je vous remercie d'avance!

Re: [..] Script pour la suppression des versions de Java

Posté : jeu. 29 sept. 2011 23:00
par mikell
Neustradamus a écrit :Est-ce qu'il est possible que le script détecte les versions et les suppriment automatiquement à la suite (version plus récente à la plus vieille)
Oui
► Afficher le texte
Image