Usando la clase WaptWUA en un script

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
esmoquin
Mensajes: 64
Inscripción: 05/09/2023 - 09:44

3 de julio de 2026 - 11:26

Buen día,

Tengo un script de auditoría que realiza una serie de operaciones durante un intervalo de tiempo, por la noche.
Parte de este script gestiona las actualizaciones de Windows.

Acabamos de realizar la actualización (versión 2.6.1.17384) y mi script ya no funciona.
El objetivo es hacer lo mismo que un "wapt-get waptwua-install" sin una tarea programada.

Esta es la sección de código que me está causando problemas:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
from waptwua.client import WaptWUA

def audit():
	with EnsureWUAUServRunning():
            wua_client = WaptWUA(WAPT)
            wua_client.install_updates()
Este es el error que me aparece:

Código: Seleccionar todo

2026-07-03 10:53:13,522 ERROR ERROR installing update: 0x800401f0 : CoInitialize n’a pas été appelé.
2026-07-03 10:53:13,768 CRITICAL Unable to build status data for key host_networking: x_wmi_uninitialised_thread("WMI returned a syntax error: you're probably running inside a thread without first calling pythoncom.CoInitialize[Ex]")
2026-07-03 10:53:13,773 CRITICAL WMI is broken on this computer. See https://techcommunity.microsoft.com/t5/ask-the-performance-team/wmi-rebuilding-the-wmi-repository/ba-p/373846 : x_wmi_uninitialised_thread: <x_wmi: WMI returned a syntax error: you're probably running inside a thread without first calling pythoncom.CoInitialize[Ex] (no underlying exception)>
[]
re-enabling wuauserv previous state: 0
2026-07-03 10:53:14,246 CRITICAL Fatal error in audit function: x_wmi_uninitialised_thread: <x_wmi: WMI returned a syntax error: you're probably running inside a thread without first calling pythoncom.CoInitialize[Ex] (no underlying exception)>:
¿Puedes ayudarme a adaptar este guion?
Wapt Enterprise Edition 2.6.1.17765
WAPTConsole Enterprise en Windows
WAPT Server en Debian 12
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 438
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

3 de julio de 2026 - 16:35

Ah... tal vez una regresión

¿Puedes probar el script añadiendo pythoncom.CoInitialize()?

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
from waptwua.client import WaptWUA
import pythoncom

def audit():
    try:
        pythoncom.CoInitialize()
    	with EnsureWUAUServRunning():
                wua_client = WaptWUA(WAPT)
                wua_client.install_updates()
    finally:
        pythoncom.CoUninitialize()
TI tranquila
esmoquin
Mensajes: 64
Inscripción: 05/09/2023 - 09:44

3 de julio de 2026 - 17:03

Tengo un error diferente:

Código: Seleccionar todo

Exception at 7343A590: EAccessViolation:
Access violation.
Wapt Enterprise Edition 2.6.1.17765
WAPTConsole Enterprise en Windows
WAPT Server en Debian 12
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 438
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

3 de julio de 2026 - 18:59

¿Estás seguro de que tienes la última versión, la 2.6.1.17834?
Hice una prueba, pero no pude reproducir el error de acceso.
Sin embargo, estos errores de "acceso no autorizado" suelen depender del estado anterior de la memoria.
TI tranquila
Respuesta