Problema con la función wmi_info()

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
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

17 de abril de 2026 - 15:25

Buen día,

Instalé el paquete tis-audi-wmi y funciona correctamente, informando adecuadamente la información WMI en los datos de auditoría.

En los paquetes wapt, solía usar la función wmi_info(), pero ahora cuando la pruebo en pyscripter, falla sistemáticamente con los mismos errores:

Código: Seleccionar todo

*** Python 3.10.19 (main, Jan 29 2026, 18:58:30) [MSC v.1929 32 bit (Intel)] on win32. ***
*** Distant Python engine is active ***
>>> from setuphelpers import *
>>> wmi_info_test1=wmi_info(keys=['Win32_ComputerSystem','Win32_ComputerSystemProduct','Win32_BIOS'])
WMI error Invalid value for list argument, fallback to py wmi
>>> wmi_info_test1=wmi_info(keys=['Win32_ComputerSystem','Win32_ComputerSystemProduct','Win32_BIOS'])
WMI error Invalid value for list argument, fallback to py wmi
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)>
>>> wmi_info_test2=wmi_info(keys=['Win32_NetworkAdapter','Win32_PhysicalMemory','Win32_Printer','Win32_VideoController'])
WMI error Invalid value for list argument, fallback to py wmi
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)>
>>> 
Esto ocurre en diferentes máquinas, por lo tanto, independientemente de la versión de Windows

Sin embargo, estoy utilizando la sintaxis correcta y los valores esperados para el parámetro keys, similares a los de la función audit del paquete:

Código: Seleccionar todo

def audit():

    wmi_keys = ['Win32_ComputerSystem','Win32_ComputerSystemProduct','Win32_BIOS',
    'Win32_NetworkAdapter','Win32_PhysicalMemory','Win32_Printer','Win32_VideoController',
    'Win32_LogicalDisk','Win32_OperatingSystem','Win32_DesktopMonitor',
    'Win32_USBController','Win32_SystemEnclosure','Win32_DiskDrive',
    'Win32_Volume','Win32_PnPSignedDriver']

    data_wmi_info = wmi_info(keys = wmi_keys)
    WAPT.write_audit_data_if_changed("audit-wmi", "audit-wmi", data_wmi_info)
    return "OK
Verifiqué que wmi era correcto (winmgmt /verifyrepository OK) y que el paquete audi-wmi recupera correctamente la información de wmi.

¿Ves cuál es el problema? Me gustaría poder usar la función wmi_info(), muy práctica, en los paquetes, que recopila gran cantidad de datos.
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

17 de abril de 2026 - 16:17

Hola Brice,

si no recuerdo mal, ha habido cambios en la forma en que se recupera la información de WMI para gestionar mejor los problemas de gen_py (la creación de archivos stub de Python para llamar a objetos COM, especialmente WMI) y otros problemas de CoInitialize (una característica de Microsoft también para objetos COM). Voy a consultar internamente para ver qué está pasando.

Saludos,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

17 de abril de 2026 - 16:50

Hola Denis,

entendido, ¡gracias! :)

Saludos cordiales.
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

22 de abril de 2026 - 10:21

Hola Denis,

solo una breve actualización para confirmar que la función wmi_info(), cuando se usa dentro de la función de instalación de un paquete, parece funcionar (devuelve el diccionario de información WMI).

Por lo tanto, la función wmi_info() funciona dentro del contexto de instalación o auditoría de un paquete, pero no fuera de él (por ejemplo, en PyScripter fuera de la instalación de un paquete).

Saludos,
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
Respuesta