problema con la funzione wmi_info()

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Risposta
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

17 aprile 2026 - 15:25

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.
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

17 aprile 2026 - 16:17

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
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

17 aprile 2026 - 16:50

Ciao Denis,

ho capito, grazie! :)

Cordiali saluti
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

22 aprile 2026 - 10:21

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,
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Risposta