Utilizzo della classe WaptWUA in uno script

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
smoking
Messaggi: 64
Registrazione: 05/09/2023 - 09:44

3 luglio 2026 - 11:26

Buongiorno,

Ho uno script di controllo che esegue una serie di operazioni durante un determinato intervallo di tempo, di notte.
Una parte di questo script gestisce gli aggiornamenti di Windows.

Abbiamo appena effettuato l'aggiornamento (versione 2.6.1.17384) e il mio script non funziona più.
L'obiettivo è ottenere lo stesso risultato di un "wapt-get waptwua-install" senza però utilizzare un'attività pianificata.

Ecco la porzione di codice che mi sta causando problemi:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *
from waptwua.client import WaptWUA

def audit():
	with EnsureWUAUServRunning():
            wua_client = WaptWUA(WAPT)
            wua_client.install_updates()
Ecco l'errore che ricevo:

Codice: Seleziona tutto

2026-07-03 10:53:13,522 ERROR ERROR installing update: 0x800401f0 : CoInitialize n’a pas été appelé.
2026-07-03 10:53:13,768 CRITICAL Unable to build status data for key host_networking: x_wmi_uninitialised_thread("WMI returned a syntax error: you're probably running inside a thread without first calling pythoncom.CoInitialize[Ex]")
2026-07-03 10:53:13,773 CRITICAL 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)>
[]
re-enabling wuauserv previous state: 0
2026-07-03 10:53:14,246 CRITICAL Fatal error in audit function: 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)>:
Potresti aiutarmi ad adattare questa sceneggiatura?
Wapt Enterprise Edition 2.6.1.17765
WAPTConsole Enterprise su Windows
WAPT Server su Debian 12
Avatar utente
htouvet
Esperto WAPT
Messaggi: 438
Registrazione: 16 marzo 2015 - 10:48
Contatto:

3 luglio 2026 - 16:35

Ah... forse una regressione

Puoi provare lo script aggiungendo pythoncom.CoInitialize()?

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *
from waptwua.client import WaptWUA
import pythoncom

def audit():
    try:
        pythoncom.CoInitialize()
    	with EnsureWUAUServRunning():
                wua_client = WaptWUA(WAPT)
                wua_client.install_updates()
    finally:
        pythoncom.CoUninitialize()
Tranquillo IT
smoking
Messaggi: 64
Registrazione: 05/09/2023 - 09:44

3 luglio 2026 - 17:03

Ho un errore diverso:

Codice: Seleziona tutto

Exception at 7343A590: EAccessViolation:
Access violation.
Wapt Enterprise Edition 2.6.1.17765
WAPTConsole Enterprise su Windows
WAPT Server su Debian 12
Avatar utente
htouvet
Esperto WAPT
Messaggi: 438
Registrazione: 16 marzo 2015 - 10:48
Contatto:

3 luglio 2026 - 18:59

Sei sicuro di avere la versione più recente, la 2.6.1.17834?
Ho eseguito un test ma non sono riuscito a riprodurre la violazione di accesso.
Tuttavia, questi errori di "Violazione di accesso" dipendono spesso dallo stato precedente della memoria.
Tranquillo IT
Risposta