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

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Respuesta
i551f
Mensajes: 1
Inscripción: 25 de noviembre de 2025 - 11:50

25 de noviembre de 2025 - 12:05

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
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

25 de noviembre de 2025 - 12:27

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.
Avatar de usuario
vcardón
Experto en WAPT
Mensajes: 272
Inscripciones: 06 Oct 2017 - 22:55 horas.
Ubicación: Nantes, Francia

25 de noviembre de 2025 - 19:48

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.
Vincent CARDON
Tranquilo IT
Respuesta