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)>
>>>
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
¿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.
