Page 1 sur 1

Lister les paquets et leur état

Publié : 28 nov. 2025 - 11:19
par Mikael S
Bonjour,

Existe-t-il un moyen de lister tous les paquets installés sur une machine ainsi que leur état et leur audit depuis un setup.py ?

L'idée serait de mettre en place des remédiations automatiques dans certains cas avec des installations problématiques.



Cordialement,

Re: Lister les paquets et leur état

Publié : 02 déc. 2025 - 07:18
par b.ald
Bonjour,

je ne suis pas très sûr de ce que vous cherchez à faire mais dans un de mes paquets j'ai quelque chose dans le genre :

Code : Tout sélectionner

package_list = WAPT.installed_package_names()      # recup les paquets installés sur la machine
for package in sorted(package_list):
    WAPT.audit(package, force=False)               # fait un audit du paquet pour chaque paquet présent dans la liste



Après.. tout cela est déjà visible dans la console WAPT.

Cdt.

Re: Lister les paquets et leur état

Publié : 08 déc. 2025 - 16:28
par Mikael S
Bonjour,

Cela ne me permet pas d'obtenir le statut.

L'idée, c'est par exemple, je veux installer les microsoft visual c++ 2015-2022, mais windows étant un outil formidable, l'installation du msi requiert de désinstaller l'ancien, mais le fichier d'installation a depuis été supprimé.

L'installateur part donc en erreur. Il est impossible de désinstaller, même problème, il faut donc purger la base de registre pour faire oublier à windows la présence de cette installation et donc d'en faire une nouvelle.
Ce type de cas se produit très souvent sur plein de produit.

En faisant un paquet médiation, je liste toutes les erreurs en cours et je lance une remédiation. Dans l'exemple, purger la base de registre pour permettre ensuite la bonne installation.

Actuellement, nous l'avons dans la console, et nous le faisons à la main. Mais avec 10 000 postes à gérer dont 450 avec des erreurs, c'est vite intenable.
On a de tout, du keepassxc, seafile, jabra, etc.
Certaines erreurs sont dues à notre précédente solution et n'apparaissent pas sur les postes installés avec WAPT.

Bref, l'idée est de gérer tout ça au maximum automatiquement et sans être derrière les postes tout le temps.
Sachant qu'un poste corrigé ne veut pas dire que le problème ne se posera pas à la prochaine mise à jour. Cela dépend beaucoup d'installateurs (souvent très bien codé ! :mrgreen: )

Re: Lister les paquets et leur état

Publié : 08 déc. 2025 - 16:34
par florentR2
C'est très intéressant car je viens justement de passer pas mal de temps pour trouver une solution pour le client Nextcloud qui nous produit pas mal d'erreur de ce type.
J'ai corrigé seulement ce package avec des try catch mais votre idée d'un paquet de remédiation général est pas mal, je m'abonne au topic si y'a une solution qui tombe.
Je purge ceci dans le registre :

Code : Tout sélectionner

HKLM\SOFTWARE\\Microsoft\Windows\CurrentVersion\Uninstall\{guid}
HKLM\SOFTWARE\Classes\Installer\Products\{guid_key_wininstaller}

Re: Lister les paquets et leur état

Publié : 15 déc. 2025 - 14:13
par b.ald
Bonjour,

par "status", est-ce si le paquet est en "OK"/"WARNING"/"ERROR" ?

Si c'est le cas, alors essayez peut-être :

Code : Tout sélectionner

package = WAPT.is_installed('nom_de_votre_paquet')
package_status = package['install_status']                          # recupère si status OK/WARNING/ERROR
un simple print devrait afficher le status :

Code : Tout sélectionner

print(package_status)
mais vous pouvez ensuite faire par exemple un

Code : Tout sélectionner

if package_status == 'ERROR' : 
       ce que vous voulez faire ensuite



edit : après il faut bien entendu que le paquet en question soit déjà présent sur la machine