Actualmente estoy trabajando en un script para estandarizar nuestro inventario de software. Mi objetivo es identificar periódicamente el software instalado manualmente (fuera de WAPT) y, si corresponde a un paquete de nuestra tienda, forzar su desinstalación y reinstalarlo correctamente mediante WAPT.
Había considerado usar la función audit() para esta tarea, con una lógica como esta:
Código: Seleccionar todo
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"Contexto de ejecución: audit() lo ejecuta el servicio WAPT (Sistema Local). Si el comando de desinstalación invoca una interfaz gráfica (incluso una simple confirmación), imagino que fallará o se bloqueará porque el servicio no puede interactuar con la sesión del usuario (problema de la Sesión 0).
Interacción del usuario: De manera similar, imagino que usar waptguihelper para notificar al usuario está prohibido en la auditoría por las mismas razones.
¿Se recomienda realizar cambios "pesados" (desinstalación) en la auditoría(), o la auditoría simplemente debería informar un estado "ERROR"?
Si audit() no es el lugar correcto, ¿cuál es la mejor práctica para este escenario? ¿Existe otro mecanismo recomendado (session_setup())?
Atentamente
