Seite 1 von 1

„Automatische Migration“ (Deinstallation/Neuinstallation) über die Funktion audit() und den Systemkontext

Veröffentlicht: 25. November 2025 - 12:05 Uhr
von i551f
Hallo zusammen,

Ich arbeite derzeit an einem Skript zur Standardisierung unseres Softwareinventars. Mein Ziel ist es, regelmäßig manuell (außerhalb von WAPT) installierte Software zu identifizieren und, falls diese einem Paket in unserem Store entspricht, die Deinstallation zu erzwingen und sie anschließend ordnungsgemäß über WAPT neu zu installieren.

Ich hatte erwogen, für diese Aufgabe die Funktion audit() zu verwenden, mit einer Logik wie dieser:

Code: Alle auswählen

def audit():
    # ... logique de détection ...
    if logiciel_hors_wapt_detecte:
        # Tentative de désinstallation
        run(WAPT.uninstall_cmd(app["msi_product_code"]))
        return "ERROR" # Pour déclencher une réinstallation ?
    return "OK"
Ich habe jedoch Zweifel an der Relevanz und der technischen Machbarkeit dieser Methode und möchte meine Intuition mit Ihnen abklären lassen:

Ausführungskontext: audit() wird vom WAPT-Dienst (Lokales System) ausgeführt. Wenn der Deinstallationsbefehl eine grafische Oberfläche aufruft (selbst eine einfache Bestätigung), wird er vermutlich fehlschlagen oder sich aufhängen, da der Dienst nicht mit der Benutzersitzung interagieren kann (Sitzungsproblem 0).

Benutzerinteraktion: Ich nehme an, dass die Verwendung von waptguihelper zur Benachrichtigung des Benutzers im Audit aus denselben Gründen verboten ist?

Ist es empfehlenswert, in der audit()-Funktion "umfangreiche" Änderungen (Deinstallation) vorzunehmen, oder sollte die audit-Funktion einfach einen "FEHLER"-Status melden?

Falls audit() nicht der richtige Ort dafür ist, was ist die beste Vorgehensweise in diesem Szenario? Gibt es einen anderen empfohlenen Mechanismus (z. B. session_setup())?

Aufrichtig

Betreff: „Automatische Migration“ (Deinstallation/Neuinstallation) über die audit()-Funktion und den Systemkontext

Veröffentlicht: 25. November 2025 - 12:27 Uhr
von Sfonteneau
Guten Morgen
i551f schrieb: 25. Nov. 2025 - 12:05 Uhr Hallo zusammen,

ich arbeite gerade an einem Skript zur Standardisierung unserer Software. Mein Ziel ist es, regelmäßig manuell installierte Software (außerhalb von WAPT) zu identifizieren und, falls sie mit einem Paket aus unserem Store übereinstimmt, die Deinstallation zu erzwingen und sie anschließend ordnungsgemäß über WAPT neu zu installieren.
Am einfachsten ist es, es aus dem wapt-Paket zu deinstallieren.

Wenn Sie Teams installieren
Falls das WAPT Teams-Paket nicht installiert ist, installieren Sie es bitte. (Das WAPT Teams-Installationspaket deinstalliert Teams oder korrigiert die Teams-Installation gegebenenfalls.)

Das GUI-Problem ist komplexer; die Deinstallation muss im Hintergrund erfolgen. Zwar ist es möglich, die Systembenutzeroberfläche auf eine Standardbenutzersitzung umzuleiten, dies stellt jedoch ein erhebliches Sicherheitsrisiko dar. Daher muss eine Methode für eine unbeaufsichtigte Deinstallation gefunden werden.

Betreff: „Automatische Migration“ (Deinstallation/Neuinstallation) über die audit()-Funktion und den Systemkontext

Veröffentlicht: 25. November 2025 - 19:48 Uhr
von vcardon
Außerdem, i551f, sollten Sie auch verstehen, wie und warum Benutzer Software weiterhin selbst installieren.

Wenn sie aktuell Software installieren/ausführen können, die von WAPT nicht unterstützt wird, besteht die erste Lösung darin, die Administratorrechte zu entfernen und SRPs auf ihre Home-Verzeichnisse anzuwenden.

Andernfalls verschwenden Sie Ihre Zeit mit der Fehlersuche, und WAPT dient lediglich dazu, ein immer größer werdendes, infiziertes Problem zu beheben.