Página 1 de 1

"Migración automática" (desinstalación/reinstalación) a través de la función audit() y el contexto del sistema

Publicado: 25 de noviembre de 2025 - 12:05 p. m.
por i551f
Hola a todos,

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"
Sin embargo, tengo dudas sobre la relevancia y viabilidad técnica de este método, y me gustaría confirmar mi intuición con usted:

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

Re: "Migración automática" (desinstalación/reinstalación) mediante la función audit() y el contexto del sistema

Publicado: 25 de noviembre de 2025 - 12:27 p. m.
por sfonteneau
Buen día
i551f escribió: 25 de noviembre de 2025 - 12:05 p. m. Hola a todos,

actualmente estoy trabajando en un script para estandarizar nuestro software. Mi objetivo es identificar periódicamente el software que se ha instalado manualmente (fuera de WAPT) y, si coincide con un paquete de nuestra tienda, forzar su desinstalación y reinstalarlo correctamente a través de WAPT.
La forma más fácil es desinstalarlo del paquete wapt.

Si instalas equipos
Si el paquete WAPT Teams no está instalado, instálelo. (El paquete de instalación de WAPT Teams desinstalará Teams o corregirá la instalación si es necesario).

En cuanto al problema de la interfaz gráfica de usuario, se trata de un problema más amplio; la desinstalación debe ser silenciosa. Si bien es posible redirigir la visualización de una cuenta del sistema a una sesión de usuario estándar, esto claramente representa un riesgo de seguridad importante. Por lo tanto, se debe encontrar un método para realizar una desinstalación silenciosa.

Re: "Migración automática" (desinstalación/reinstalación) mediante la función audit() y el contexto del sistema

Publicado: 25 de noviembre de 2025 - 19:48
por vcardon
Además, i551f, tu objetivo también debería ser comprender cómo y por qué los usuarios siguen instalando software por su cuenta.

Si actualmente pueden instalar/ejecutar software no compatible con WAPT, la primera solución es eliminar los permisos de administrador y aplicar las políticas de seguridad (SRP) a sus directorios personales.

De lo contrario, perderás el tiempo intentando solucionar el problema de forma ineficaz, y WAPT solo servirá para paliar una herida infectada.