Page 1 sur 1

"Auto-migration" (désinstallation/réinstallation) via la fonction audit() et contexte système

Publié : 25 nov. 2025 - 12:05
par i551f
Bonjour à tous,

Je travaille actuellement sur un script pour standardiser notre parc. Mon objectif est d'identifier périodiquement les logiciels qui ont été installés manuellement (hors WAPT) et, s'ils correspondent à un paquet de notre store, de forcer leur désinstallation pour les réinstaller proprement via WAPT.

J'avais pensé utiliser la fonction audit() pour cette tâche, avec une logique de ce type :

Code : Tout sélectionner

def audit():
    # ... logique de détection ...
    if logiciel_hors_wapt_detecte:
        # Tentative de désinstallation
        run(WAPT.uninstall_cmd(app["msi_product_code"]))
        return "ERROR" # Pour déclencher une réinstallation ?
    return "OK"
Cependant, j'ai un doute sur la pertinence et la faisabilité technique de cette méthode, et j'aimerais confirmer mon intuition avec vous :

Contexte d'exécution : audit() est exécuté par le service WAPT (Local System). Si la commande de désinstallation invoque une interface graphique (même une simple confirmation), j'imagine que cela va échouer ou bloquer car le service ne peut pas interagir avec la session utilisateur (problème de Session 0) ?

Interaction utilisateur : De même, j'imagine que l'utilisation de waptguihelper pour avertir l'utilisateur est proscrite dans l'audit pour les mêmes raisons ?

Est-il recommandé de faire des modifications "lourdes" (désinstallation) dans l'audit(), ou l'audit doit-il se contenter de remonter un état "ERROR" ?

Si l'audit() n'est pas le bon endroit, quelle est la meilleure pratique pour ce scénario ? Existe-t-il une autre mécanique recommandée (session_setup()) ?

Cordialement

Re: "Auto-migration" (désinstallation/réinstallation) via la fonction audit() et contexte système

Publié : 25 nov. 2025 - 12:27
par sfonteneau
Bonjour
i551f a écrit : 25 nov. 2025 - 12:05 Bonjour à tous,

Je travaille actuellement sur un script pour standardiser notre parc. Mon objectif est d'identifier périodiquement les logiciels qui ont été installés manuellement (hors WAPT) et, s'ils correspondent à un paquet de notre store, de forcer leur désinstallation pour les réinstaller proprement via WAPT.
Le plus simple C'est de faire la désinstallation dans le paquet wapt.

Si teams installer
Si paquet wapt teams pas installer alors l'installer. (et le paquet wapt d'installation de teams désinstall teams ou corrige l'installation de teams si necessaire)

En ce qui concerne le problème de gui c'est un problème plus global, la désinstallation doit être silencieuse. On peu effectivement déporter un affichage en compte system dans une session utilisateur standard mais c'est clairement un gros interdit niveau sécu. Il faut donc se débrouiller pour effectuer une désinstallation silencieuse

Re: "Auto-migration" (désinstallation/réinstallation) via la fonction audit() et contexte système

Publié : 25 nov. 2025 - 19:48
par vcardon
Aussi i551f, votre objectif devrait être aussi de comprendre comment et pourquoi les utilisateurs installent encore par eux-mêmes des logiciels.

S'ils peuvent aujourd'hui installer/exécuter des logiciels non servis par WAPT, alors la première solution est de supprimer les droits admin et d'appliquer des SRP sur leurs répertoires persos.

Sinon, vous passerez votre temps à whackamoler (réf : Whack-a-mole) et WAPT ne servira qu'à panser une plaie infectée qui s'élargit.