eine EXE mit runas aus Python starten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
OTimme
User
Beiträge: 5
Registriert: Montag 17. Juni 2019, 08:33

Hallo zusammen

ich möchte Python verwenden um an einem Computer mit einem Kommandozeilen-Tool die Konfiguration einer VPN Software auszulesen. Das Tool muss mit 'runas' gestartet werden, da es Admin Privilegien benötigt (UAC). Ich habe das folgende Testscript erstellt:
import os
myCmd = 'runas /noprofile /user:admin@domain.local "c:\program files\fortinet\forticlient\fcconfig.exe -m all -f settings.xml -o export -i 1"'
os.system(myCmd)
Wenn ich das Script in PyCharm ausführe bekomme ich folgende Ausgabe
C:\.......\python.exe "C:/Users/......insert_xml.py"
Geben Sie das Kennwort f�r "admin@sdomain.local" ein:

Process finished with exit code 0
Die Ausführung von 'runas' bricht irgendwie bei der Passwortanforderung ab. Das Kommandozeilen-Tool wird also gar nicht aufgerufen. Was mache ich da falsch?

Danke für eure Hilfe, Oliver
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte nicht mehr das ewig alte und in der Dokumentation als veraltet ausgezeichnete os.system benutzen. Das subprocess-Modul ist deutlich besser. Teile deines Problems moegen auch daher kommen, weil du statt einer Liste von Programm und Parametern einfach einen ganzen String verwenden musst - und da hoellisch aufpassen musst, dass alles richtig escaped ist etc. Auch das du relative Pfade verwendest fuer settings.xml und export sieht roedelig aus, ich wuerde fuer sowas immer absolute Pfade und ggf. temporaere Dateien nutzen.

Doch es scheint, als ob das im allgemeinen ein schwierigeres Problem ist, und du so vorgehen musst:

https://stackoverflow.com/questions/130 ... hon-script

Du kannst also ein kleinen Hilfs-Skript schreiben (auch das zB als temporares File!) welches du per ShellExecuteW ausfuehrst, und welches dann das eigentliche Programm mit subprocess.run aufruft.
OTimme
User
Beiträge: 5
Registriert: Montag 17. Juni 2019, 08:33

Hallo Deets

Danke für deinen Input. Das Script war nur ein Funktionstest. Ich habe mir die Infos aus deinem Link angeschaut und denke dass ich es damit hinkriege.

Oliver
Antworten