Seite 1 von 1
Python Windows CMD
Verfasst: Montag 25. Juli 2016, 14:48
von undercover90
Hallo Leute. Stehe immer noch vor dem Problem, über Python Windows CMD-Befehle auszuführen, für die Admin-Rechte erforderlich sind. Hat hier jemand diesbezüglich Erfahrungen?
Mein Ansatz sah folgendermaßen aus:
Code: Alles auswählen
import subprocess as sp
prog = sp.Popen(['runas', '/noprofile', '/user:Administrator', 'cmd'])
Eine automatische Übergabe des Passworts an runas scheiterte leider. Komme ich um eine Batchdatei nicht herum? Oder lässt sich dies auch mit Python realisieren ohne das Passwort manuell einzugeben?
Re: Python Windows CMD
Verfasst: Montag 25. Juli 2016, 14:57
von DasIch
Das Passwort solltest du aus Sicherheitsgründen nicht übergeben können, ob mit Python oder Batch.
Re: Python Windows CMD
Verfasst: Montag 25. Juli 2016, 15:09
von sebastian0202
Wenn man die Sicherheit außen vor lässt.. dann gänge das mittels expect
Expect für Python wäre Pexpect
https://github.com/pexpect/pexpect
Das Passwort steht dann aber irgendwo im Klartext.
Wie handelt man sowas eigentlich in der Produktivwelt?
Automatisierte Jobs die eben Rechte brauchen. Irgendwie muss man ja ein Passwort übergeben.
Re: Python Windows CMD
Verfasst: Montag 25. Juli 2016, 15:18
von undercover90
pexpect.spawn and pexpect.run() are not available on Windows, as they rely on Unix pseudoterminals
(ptys). Cross platform code must not use these.
Re: Python Windows CMD
Verfasst: Montag 25. Juli 2016, 15:19
von sebastian0202
Hab schnell eben google bemüht. Die Windowsalternative heißt dann wohl Wexpect.
Re: Python Windows CMD
Verfasst: Montag 25. Juli 2016, 15:40
von DasIch
sebastian0202 hat geschrieben:Wie handelt man sowas eigentlich in der Produktivwelt?
Automatisierte Jobs die eben Rechte brauchen. Irgendwie muss man ja ein Passwort übergeben.
Nein muss man nicht. Du sagt dem Betriebssystem einfach dass es unter Bedingung X einen Prozess unter einem bestimmten User starten soll. Windows unterscheidet sich hier auch nicht von anderen Betriebssystemen.
Der richtige Ansatz wäre auch hier die Funktionalität die weitere Rechte benötigt in einen solchen Hintergrundprozess auszugliedern, den man dann über eine API anspricht. Ansonsten muss halt irgendein Mensch jedesmal sein Passwort eintippen, kann für bestimmte Sachen auch OK sein.
Re: Python Windows CMD
Verfasst: Montag 25. Juli 2016, 18:22
von Dirki
Unter Linux kann man sowas mit der /etc/sudoers machen. Da kann man festlegen, das verschiedene Skripte ohne Passwort ausgeführt werden können.