Pagina 1 di 1

problema con la funzione wmi_info()

Pubblicato: 17 aprile 2026 - 15:25
di brice73
Buongiorno,

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)>
>>> 
Questo problema si verifica su diverse macchine, quindi indipendentemente dalla versione di Windows

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
Ho verificato che wmi fosse corretto (winmgmt /verifyrepository OK) e che il pacchetto audi-wmi recuperasse correttamente le informazioni wmi.

Capisci qual è il problema? Vorrei poter utilizzare la utilissima funzione wmi_info() presente nei pacchetti, che raccoglie molti dati.

Oggetto: Problema con la funzione wmi_info()

Pubblicato: 17 aprile 2026 - 16:17
di dcardon
Ciao Brice,

se ricordo bene, ci sono state delle modifiche al modo in cui vengono recuperate le informazioni WMI per gestire meglio i problemi relativi a gen_py (la creazione di file stub Python per richiamare oggetti COM, in particolare WMI) e altri problemi di CoInitialize (una funzionalità Microsoft anche per gli oggetti COM). Verificherò internamente per capire cosa sta succedendo.

Cordiali saluti,

Denis

Oggetto: Problema con la funzione wmi_info()

Pubblicato: 17 aprile 2026 - 16:50
di brice73
Ciao Denis,

ho capito, grazie! :)

Cordiali saluti

Oggetto: Problema con la funzione wmi_info()

Pubblicato: 22 aprile 2026 - 10:21
di brice73
Ciao Denis,

solo un breve aggiornamento per confermare che la funzione wmi_info(), quando utilizzata all'interno della funzione di installazione di un pacchetto, sembra funzionare (restituendo il dizionario delle informazioni WMI).

Quindi, la funzione wmi_info() funziona nel contesto dell'installazione o della verifica di un pacchetto, ma non al di fuori di esso (ad esempio, in PyScripter al di fuori dell'installazione di un pacchetto).

Cordiali saluti,