Vista UAC mit subprocess?

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Weiß jemand wie man ein Prozess als Admin unter Vista starten kann?

Ich denke die Stichworte sind "System::Diagnostics::Process" siehe:
http://en.wikipedia.org/wiki/User_Accou ... _elevation

Ich konnte aber kein Beispiel finden.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

jens hat geschrieben:Weiß jemand wie man ein Prozess als Admin unter Vista starten kann?
Hallo jens!

Vielleicht gibt es unter Vista noch das Kommandozeilenprogramm "RUNAS". Wenn Ja, dann haben die das vielleicht so angepasst, dass man damit Admin-Rechte bekommt.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ja, das gibt es. Allerdings funktioniert das etwas anders. Mit runas startet man ja ein Programm unter einem anderen Usernamen. Ich möchte aber nur die Rechte ändern.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

Dafür musst du die winapi nutzen, über die stdlib geht das nicht.
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

jens hat geschrieben:Ja, das gibt es. Allerdings funktioniert das etwas anders. Mit runas startet man ja ein Programm unter einem anderen Usernamen. Ich möchte aber nur die Rechte ändern.
Eine Möglichkeit wäre, für einen bestimmten Admin-Account den UAC in der lokalen "Scurity Policy" über "Elevation" quasi zu deaktivieren und die Prozesse unter diesem User zu fahren.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hm. Das sagt mir jetzt nix ;)

Also es sollte nicht so schwer sein. Auf der Seite http://en.wikipedia.org/wiki/User_Accou ... _elevation gibt es Beispielcode in C++/CLI:

Code: Alles auswählen

System::Diagnostics::Process^ proc = gcnew System::Diagnostics::Process();
proc->StartInfo->FileName = "C:\\Windows\\system32\\notepad.exe";
proc->StartInfo->Verb = "runas"; // Elevate the application
proc->Start();
So geht's aber nicht:

Code: Alles auswählen

import subprocess, win32con

startupinfo = subprocess.STARTUPINFO()
startupinfo.Verb = "runas"

subprocess.Popen(
    ["net", "start", "TlntSvr"],
    startupinfo=startupinfo
).wait()

print "-- END --"
Es kommt:
Systemfehler 5 aufgetreten.

Zugriff verweigert

-- END --

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

lunar hat geschrieben:Dafür musst du die winapi nutzen, über die stdlib geht das nicht.
Seit ctypes im standard ist, geht es bestimmt ;-)
Antworten