Ich möchte ein Zip-Archiv zu "C: \\" (nur für Testzwecke) extrahieren. Daher benötige ich Administratorrechte, also versuche ich den aktuellen Benutzer zu erhöhen, um Administratorrechte zu erhalten.Benutzer durch Python erhöhen
if __name__ == "__main__":
ASADMIN = 'asadmin'
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
main()
Die Aufrufnachricht von UAC ist comming, wie es sollte, aber wenn ich die Zip ich extrahieren möchten noch immer bin „IOError: verweigert [Errno 13] Permission“.
Was mache ich hier falsch?
Hmm Ich habe den Code wie Sie geändert, aber jetzt beendet mein Programm direkt nach der UAC mit Exit-Code 0? –
Nun, ich weiß nicht, ob Shell.ShellExecuteEx ein blockierender Aufruf ist. Wenn es nicht blockierend ist, würde der ursprüngliche Lauf des Skripts sofort beendet und ein neuer Prozess mit dem gleichen Skript würde separat ausgeführt werden, was auch immer im Hauptprogramm ausgeführt wird. Siehe auch diese Frage: http://stackoverflow.com/questions/130763 – zstewart