[GELÖST] Verwendung der Funktion start_interactive_process für die Benutzerinteraktion während der Bereitstellung

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
fobrian
Nachrichten: 21
Anmeldung: 26. September 2024 - 09:35 Uhr

5. Dezember 2024 - 10:12 Uhr

Guten Morgen,

Ich erlaube mir, dieses Thema im Anschluss an den Beitrag anzusprechen (viewtopic.php?p=14558#p14558) die ich im Hinblick auf die mögliche Interaktion mit Benutzern beim Bereitstellen eines Pakets mit WAPT eröffnet hatte.

Leider funktionierte zwar mein Befehlszeilenaufruf eines externen PowerShell-Skripts und die Anzeige eines Popups für den Benutzer beim lokalen Testen mit PyScripter einwandfrei, aber bei der Bereitstellung des Pakets über WAPT sah die Sache ganz anders aus, da nichts angezeigt wurde.

Ich wollte also diesen PowerShell-Skriptaufruf mithilfe der Funktion anpassen start_interactive_process Wie Simon bereits angedeutet hatte, gelang es mir, die folgende Befehlszeile zu erstellen, die lokal mit PyScripter einwandfrei funktioniert:

Code: Alle auswählen

notification_folder = makepath(basedir, "Notification")

for session_id in get_active_sessions():
	popup=notification_folder + "\\PsExec.exe"
        popup_command_exec="-s powershell.exe " + notification_folder + "\\ServiceUI.exe C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoLogo -Noprofile -WindowStyle Hidden -file " + notification_folder + "\\Notification.ps1 -config " + notification_folder + "\\upgrade.xml"
        start_interactive_process(popup, popup_command_exec, session_id=session_id,minimize=True)
Wenn ich das Paket jedoch veröffentliche und die Bereitstellung auf einem Computer teste, erhalte ich folgende Fehlermeldung:

Bild

Allerdings ist das betreffende Verzeichnis völlig leer, da es vom Paket nur gelegentlich und vorübergehend verwendet wird, denke ich (ich weise darauf hin, dass alle notwendigen Dateien von Anfang an im Paketverzeichnis vorhanden sind).

Meine Frage lautet: Ist dieses Phänomen normal und welche Funktion hat es? start_interactive_process Kann es auf Dateien aus dem nativen Verzeichnis des Pakets zugreifen?

Dank im Voraus.

Fred
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1953
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

5. Dezember 2024 - 10:53 Uhr

Hallo Frédéric,

ich nehme an, du rufst diese Funktion innerhalb der `install()`-Funktion auf (am besten wäre es, wenn du das gesamte Skript hättest). Der Paketinhalt wird in ein temporäres Verzeichnis in `%TEMP%` entpackt. Falls `psexec.exe` im Paket vorhanden ist, wird es ebenfalls in das temporäre Verzeichnis entpackt. Allerdings wird diese Datei von den meisten Antivirenprogrammen automatisch gelöscht, daher solltest du das zuerst überprüfen.

Viele Grüße,

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
fobrian
Nachrichten: 21
Anmeldung: 26. September 2024 - 09:35 Uhr

6. Dezember 2024 – 15:48 Uhr

Hallo Denis,

Danke für Ihre Antwort.
Tatsächlich wird das Skript in dem Teil ausgeführt def install(): Und hier ist der vollständige Code:

Code: Alle auswählen

def install():

	notification_folder = makepath(basedir, "Notification")

	for session_id in get_active_sessions():
		popup=notification_folder + "\\PsExec.exe"
        	popup_command_exec="-s powershell.exe " + notification_folder + "\\ServiceUI.exe C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoLogo -Noprofile -WindowStyle Hidden -file " + notification_folder + "\\Notification.ps1 -config " + notification_folder + "\\upgrade.xml"
        	start_interactive_process(popup, popup_command_exec, session_id=session_id,minimize=True)
        
        sys.exit(0)
Ich habe parallel versucht, ein Verzeichnis zu erstellen, auf das alle Benutzer lokal Zugriff haben, die benötigten ausführbaren Dateien (einschließlich "PsExec.exe") hinein zu kopieren und sie dann von meinem Python-Skript aus aufzurufen.
Das Skript funktioniert einwandfrei mit PyScripter, das Verzeichnis wird korrekt erstellt und die Dateien werden nicht vom Antivirenprogramm gelöscht.

Allerdings funktioniert es auch nicht, wenn es als Paket ausgeführt wird.

Gibt es bei der Funktion bestimmte Punkte, die zu beachten sind? start_interactive_process ?

Dank im Voraus.

Fred
fobrian
Nachrichten: 21
Anmeldung: 26. September 2024 - 09:35 Uhr

10. Dezember 2024 – 16:21 Uhr

Hallo,

ich konnte das Problem endlich durch Änderung der Befehlszeilensyntax lösen, und die Benachrichtigung wird nun korrekt im Benutzerkontext angezeigt.
Ich habe mich jedoch für eine geplante, kurzlebige Aufgabe entschieden, um die Prozesse „PsExec.exe“ und „ServiceUI.exe“ zu vermeiden, deren Verhalten von EDRs manchmal falsch interpretiert wird.

Fred
luc91
Nachrichten: 7
Anmeldung: 11. Oktober 2025 - 16:05 Uhr

12. Januar 2026 – 23:58 Uhr

Ich denke, Ihre Lösung mit der geplanten Aufgabe war letztendlich einfacher. Sie umgeht die Probleme mit PsExec und ServiceUI, insbesondere im Zusammenhang mit Antivirensoftware oder EDR, die diese blockieren können.
Gesperrt