Ho installato il pacchetto tis-audi-wmi e funziona correttamente, riportando le informazioni WMI nei dati di audit.
Nei pacchetti wapt, utilizzavo la funzione wmi_info(), ma ora, quando la testo in pyscripter, fallisce sempre con gli stessi errori:
Codice: Seleziona tutto
*** 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)>
>>>
Tuttavia, sto utilizzando la sintassi corretta e i valori previsti per il parametro keys, simili a quelli della funzione audit del pacchetto:
Codice: Seleziona tutto
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
Capisci qual è il problema? Vorrei poter utilizzare la utilissima funzione wmi_info() presente nei pacchetti, che raccoglie molti dati.
