.exe Datei als Administrator via 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
Astraioz

Hallo :)

ich würde gerne eine .exe via Python als Administrator starten.

Ich habe schon versucht:

Code: Alles auswählen

subprocess.call(['runas', '/user:Administrator', 'DL32.exe'])
Dort muss aber ein Passwort eingeben werden.

Gibt es da irgendeine Möglichkeit?


Gruß,
Astraioz
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du müsstest iirc ``subprocess.communicate`` nutzen. Damit kannst Du an den Prozess auch Daten senden.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Astraioz

@Hyperion Erstmal Danke für deine Antwort. :D

Aber was bringt mir das wenn ich Daten an andere Prozesse schicke? Ich möchte das mit dem Passwort komplett rausnehmen :/
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Astraioz hat geschrieben: Aber was bringt mir das wenn ich Daten an andere Prozesse schicke? Ich möchte das mit dem Passwort komplett rausnehmen :/
Ach so... hm... also ich würde ja denken, dass das eher auf OS-Ebene und der dort verfügbaren Konfiguration zu lösen ist! Python "zaubert" da ja nicht, sondern führt brav das "runas"-Kommando aus.

Du müsstest es also zunächst schaffen, das Passwort bei diesem Kommando in einer Shell nicht mehr eingeben zu müssen - auf die gleiche Art und Weise kannst Du es dann per ``subprocess`` aufrufen :-)

Da solltest Du da mal Menschen fragen, die sich mit Windows-Administration auskennen!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Andev
User
Beiträge: 24
Registriert: Dienstag 17. Januar 2012, 15:55

Hallo,

"runas" unterstützt aus Sicherheitsgründen prinzipiell nicht die automatische Übergabe von Passwörtern, sondern erfordert eine manuelle Eingabe.
Je nach Kontext gibt es eventuell mehrere Möglichkeiten, das trotzdem durchzuführen:
Unter Windows 7/Vista Professional (oder höher) gibt es den Switch /savecred für runas, der das Problem zumindest lokal umgehen sollte.
Die Windows-Server-Varianten unterstützen beliebige Nutzerkontexte im gesamten Netzwerk.
Eventuell ist PsExec hilfreich (Benutzername und Passwort können übergeben werden), ich habe es in diesem Zusammenhang aber noch nicht genutzt.
Wenn es nur ein einzelnes lokales Programm ist, lässt sich dessen Ausführung im Kompabilitäts-Tab automatisch auf den Administrator-Kontext umstellen.
Die Windows-API kann direkt aufgerufen werden, um Prozesse mit Benutzernamen und Passwort zu starten.

Es gibt noch genügend weitere Software, die die Passwortübergabe ermöglicht, aber ich kann weder zu deren Qualität noch Sicherheit etwas sagen.
Möglicherweise kennt auch jemand Tricks aus der Prozesskommunikation um die manuelle Eingabe zu automatisieren, da kann ich aber nicht helfen.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Antworten