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"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
