Seite 1 von 1

Verwendung der WaptWUA-Klasse in einem Skript

Veröffentlicht: 3. Juli 2026 - 11:26 Uhr
von Tux
Guten Morgen,

Ich habe ein Audit-Skript, das nachts während eines bestimmten Zeitraums eine Reihe von Operationen durchführt.
Ein Teil dieses Skripts verwaltet Windows-Updates.

Wir haben soeben das Update (Version 2.6.1.17384) durchgeführt und mein Skript funktioniert nicht mehr.
Das Ziel ist es, dasselbe zu erreichen wie mit "wapt-get waptwua-install", jedoch ohne geplante Aufgabe.

Hier ist der Codeabschnitt, der mir Probleme bereitet:

Code: Alle auswählen

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

def audit():
	with EnsureWUAUServRunning():
            wua_client = WaptWUA(WAPT)
            wua_client.install_updates()
Folgende Fehlermeldung erhalte ich:

Code: Alle auswählen

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)>:
Können Sie mir helfen, dieses Skript anzupassen?

Betreff: Verwendung der WaptWUA-Klasse in einem Skript

Veröffentlicht: 3. Juli 2026 - 16:35 Uhr
von htouvet
Ah... vielleicht ein Rückschritt

Können Sie das Skript ausprobieren, indem Sie pythoncom.CoInitialize() hinzufügen?

Code: Alle auswählen

# -*- 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()

Betreff: Verwendung der WaptWUA-Klasse in einem Skript

Veröffentlicht: 3. Juli 2026 - 17:03 Uhr
von Tux
Ich habe einen anderen Fehler:

Code: Alle auswählen

Exception at 7343A590: EAccessViolation:
Access violation.

Betreff: Verwendung der WaptWUA-Klasse in einem Skript

Veröffentlicht: 3. Juli 2026 - 18:59 Uhr
von htouvet
Sind Sie sicher, dass Sie die neueste Version (2.6.1.17834) verwenden?
Ich habe einen Test durchgeführt, konnte den Zugriffsfehler aber nicht reproduzieren.
Allerdings hängen diese Zugriffsfehler häufig vom vorherigen Speicherzustand ab.

Betreff: Verwendung der WaptWUA-Klasse in einem Skript

Veröffentlicht: 6. Juli 2026 - 9:08 Uhr
von Tux
Guten Morgen,

Ja, ich verwende tatsächlich Version 2.6.1.17834, meine Signatur habe ich noch nicht aktualisiert.
Ich habe es heute Morgen auf meinem neu eingerichteten Rechner getestet und habe dasselbe Problem.

Kann der Aufruf der Funktion pythoncom.CoUninitialize() Auswirkungen auf PyScripter haben?

Code: Alle auswählen

Scanning with windows updates rules:
{
 "direct_download":false,
 "default_allow":false,
 "include_potentially_superseded_updates":false,
 "filter":"Type='Software' or Type='Driver'",
 "download_scheduling":"12h",
 "install_scheduling":"6h",
 "install_delay":null,
 "postboot_delay":"10m",
 "user_locale":1033
}
Bypassing scan, no change since last successful scan
Exception at 728BA590: EAccessViolation:
Access violation.
>>> 
*** Remote Interpreter Reinitialized ***
>>>