Mit Python CMD Befehle als Administrator ausführen

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
Scriptinggamer
User
Beiträge: 107
Registriert: Sonntag 24. Juni 2012, 16:38
Wohnort: Werder/Havel

Einen wundervollen Tag wünsche ich,
Ich habe ein Programm geschrieben um mich (und andere Benutzer) daran zu hindern zuviele PC-Spiele zu spielen, das ganze basiert auf dem CMD-Befehl taskkill. Runterladen kann sich das jeder auf meiner Website http://scriptinggamer.de.cg/ (wo auch Foreneinträge gern gesehen sind :D ). Für einige Spiele wie zum Beispiel "Team Fortress 2" oder "Minecraft" funktioniert das auch einwandfrei, um andere Spiele wie "Brick Force" oder "Crossfire" zu beenden bräuchte CMD jedoch Administratorenrechte. Bis jetzt sieht der entsprechende Code so aus:

Code: Alles auswählen

os.system("taskkill /F /IM " + prozess + " /T")
Meine Idee wäre ja, dem Python-Programm irgendwie die Rechte zu geben und das würde sie dann an die CMD weitergeben, aber wie das gehen soll weiß ich nicht.
Ansonsten ließe sich das ja über den befehl runas machen, aber dann kann der Benutzer ja einfach keine eingabe machen und abbrechen, das soll ja grade nicht möglich sein (angenommen der Benutzer weiß nicht wie man die pythonw.exe beendet)

Vielen Dank für alle Antworten
Gruß
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Müsste es nicht reichen unter Windows dies mit Rechtsklick als Administrator ausführen?
Unter Linux würde er nach dem Admin Passwort fragen, sobald man eine Aktion ausführt die entsprechende Rechte benötigt.
Scriptinggamer
User
Beiträge: 107
Registriert: Sonntag 24. Juni 2012, 16:38
Wohnort: Werder/Havel

Das steht da bei Python-Programmen garnicht, bei .exe Datein steht da "Als Administrator ausführen" aber bei einem .pyw Programm nicht, kann man das noch auf anderem Weg machen?
(sry hab da nicht soviel Ahnung, aber die Idee hatte ich auch schon, habs nur eben nicht gefunden)
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Scriptinggamer
User
Beiträge: 107
Registriert: Sonntag 24. Juni 2012, 16:38
Wohnort: Werder/Havel

Sry, aber was hat das denn mit Administratorenrechten zu tun? ich weiß nicht was du meinst...
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Hallo,
auch wenn sich mir der Sinn dahinter nicht ganz erschließt, denn wenn man aus eigenem Antrieb nicht mehr mit dem Spielen aufhören kann, hat man offenbar ein gravierendes Problem ;-).

http://www.microsoft.com/resources/docu ... x?mfr=true

Allerdings bin ich mir nicht sicher, ob du für diese Aktion wirklich Python brauchst. Das müsste doch über eine "Batchdatei" auch laufen.

LG
Daniel
deets

Scriptinggamer hat geschrieben:Sry, aber was hat das denn mit Administratorenrechten zu tun? ich weiß nicht was du meinst...
Es geht darum, ein Python-Skript in ein Executable zu wandeln. Das kannst du dann mit anderen Rechten ausstatten.
Scriptinggamer
User
Beiträge: 107
Registriert: Sonntag 24. Juni 2012, 16:38
Wohnort: Werder/Havel

Hi, danke für die Antworten :D
Es geht darum das viele Leute (ich eingeschlossen) wenn sie nichts zu tun, aber viel Zeit haben, einfach nicht die Disziplin haben, nach einer bestimmten Zeit aufzuhören, das ist bei mir bei allen Sachen die mir Spaß machen so...

Und ja, natürlich könnte ich auch ne Batch schreiben, aber ich möchte das ganze benutzerfreundlich Gestallten, auf meiner Website auf der "Software"-Seite könnt ihr euch ja das Video dazu mal ansehen. Das ganze ist einfach zu bedienen, mit Tkinter geschrieben.

Ich werd wohl nochmal ein Bisschen mit dem taskkill Befehl rumprobieren, wenn jemand einen dierekten Vorschlag hat, wie der Codeschnippsel dann aussehen soll, nur her damit ;)

in eine exe stecken hatte ich mir auch schon gedacht, aber dann wird die Datei wieder so groß, außerdem hab ich das Programm in Python 3.2 geschrieben py2exe gibts da ja meines wissens noch nicht für, und ein anderes dafür gedachtes Programm hat bei meinen Programmen versagt :(
Gruß
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Scriptinggamer hat geschrieben:... und ein anderes dafür gedachtes Programm hat bei meinen Programmen versagt :(
Nenne immer Ross und Reiter! ;-) Wenn Dir jemand einen Tipp geben will, dann nennt er evtl. das von Dir benutzte Programm. Damit hat er sich umsonst Mühe gegeben und Du keinen Mehrwert davon...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Scriptinggamer
User
Beiträge: 107
Registriert: Sonntag 24. Juni 2012, 16:38
Wohnort: Werder/Havel

Hallo,
ich hab den namen vergessen und das programm wieder deinstalliert,
aber ich möchte es ja sowieso als .pyw datei lassen wenn irgendwie möglich.
kann man CMD Programme eigentlich auch unsichtbar (ohne Konsole) laufen lassen?

Ich habe noch diesen befehl gefunden:

Code: Alles auswählen

import subprocess
subprocess.call(['runas', '/user:' + os.getlogin(), 'taskkill /F /IM program.exe /T'])
aber der will auch ein Passwort haben...
Gruß
Scriptinggamer
User
Beiträge: 107
Registriert: Sonntag 24. Juni 2012, 16:38
Wohnort: Werder/Havel

Hi,
Wäre es denn irgendwie möglich der Konsole auf die Passwortfrage zu antworten?
Also das Python CMD eine Antwort übergibt?
deets

Unter Unixoiden mit pexpect. KA ob's unter Windows was equivalentes gibt. Aber ich wuerde das an deiner Stelle *NICHT* machen - denn das bedeutet, dass du das Passwort im *Klartext* irgendwo speichern musst. Da kannst du den Administratoren-Account gleich ohne Passwort anlegen...

Du bist nunmal unter Windows unterwegs, dann musst du dich so verhalten, wie Windows das verlangt. Man kann dort durchaus festlegen, dass bestimmte Programme mit Administratoren-Rechten arbeiten. Dazu koenntest du das ganze zB als Service bauen, oder eben eine EXE, der du ein entsprechendes Manifest verpasst:

http://msdn.microsoft.com/en-us/library ... 56929.aspx
Scriptinggamer
User
Beiträge: 107
Registriert: Sonntag 24. Juni 2012, 16:38
Wohnort: Werder/Havel

Ok, Danke
ich habs jetzt also mit cx_freeze in eine exe gesteckt und alles funktioniert super...
Antworten