Seite 1 von 1

eine EXE mit runas aus Python starten

Verfasst: Montag 17. Juni 2019, 08:49
von OTimme
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

Re: eine EXE mit runas aus Python starten

Verfasst: Montag 17. Juni 2019, 11:21
von __deets__
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.

Re: eine EXE mit runas aus Python starten

Verfasst: Montag 17. Juni 2019, 16:47
von OTimme
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