Entwickler-Ecke

Windows API - Im Systemaccount gestartetes Programm beenden


kandesbunzler - Do 23.11.06 01:54
Titel: Im Systemaccount gestartetes Programm beenden
Hallo allerseits

und Guten Morgen -).

Folgendes Problem bereitet mir Kopfzerbrechen: Wie kann ich ein Programm, welches im Systemaccount läuft, beenden? Starte ich das gleiche Programm mit dem Benutzeraccount, läßt es sich problemlos 'abschießen'. Ist die von mir dafür verwendete Routine 'KillTask (Programm.exe)' nicht geeignet oder bedarf es noch anderer Parameter?

Danke im Voraus und auf bald ...
kandesbunzler.


Moderiert von user profile iconraziel: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 23.11.2006 um 07:04


Delete - Do 23.11.06 02:01

Da dir der Prozess nicht gehört, wirst du ihn auch nicht beenden können. Und das ist auch gut so, sonst wäre die gesamte Rechteverwaltung von Windows für den Popo.


kandesbunzler - Do 23.11.06 02:10

Hallo Luckie (oder Lucky? -)),

danke für Deine Antwort, da hast Du sicher Recht.

Frage: Wenn ich aber dieses Programm als 'Normalbenutzer' über den Taskmanager 'abschießen' kann, müßte ich es doch ebenfalls als 'Normalbenutzer' mit 'Killtask' das gleiche erreichen. Ansonsten wäre das Sicherheitskonzept tatsächlich für, äh, die Katz. -))

Auf bald ...
kandesbunzler.


Delete - Do 23.11.06 10:33

Auch mit dem Taskmanager kannst du keine Prozesse beenden, die dir nicht gehören, da bin ich mir ziemlich sicher.


Udontknow - Do 23.11.06 11:40

Hallo!

Beendest du dieses Programm über "Task beenden" in der Taskliste oder "Prozess beenden" in der Prozessliste? Das ist ein Unterschied, bei "Task beenden" wird meines Wissens nach das Programm regulär geschlossen...

Cu,
Udontknow


kandesbunzler - Do 23.11.06 12:48

Hallo allerseits,

urks - wieder einmal nicht genau genug beschrieben - Entschuldigung.

Ich kann das Programm (bspw. Test.exe) über 'Prozess beenden' aus der Prozessliste beenden, wenn dieses vor Starten meines Tools manuell oder (testenderweise) von meinem Tool programmatisch gestartet wurde. Dies passiert nicht, wenn dieses Programm, aufgerufen durch ein anderes als separate Instanz, im Systemaccount läuft. Es verbleibt in der Prozessliste und es wird auch keine Fehlermeldungen o.ä. ausgegeben.

Ein Kollege meinte, wenn dieses Programm (Test.exe) über WM_Close beendet würde, wäre der Account (solange nicht vom Betriebssystem o.a. gesperrt), nicht relevant. Kann das stimmen?

Auf bald ...
kandesbunzler.


Delete - Do 23.11.06 13:07

user profile iconkandesbunzler hat folgendes geschrieben:

Ich kann das Programm (bspw. Test.exe) über 'Prozess beenden' aus der Prozessliste beenden, wenn dieses vor Starten meines Tools manuell oder (testenderweise) von meinem Tool programmatisch gestartet wurde.

Dann gehört es ja auch dir bzw. deinem Programm, was es gestartet hat. Und du darfst es natürlich beenden.


Zitat:
Dies passiert nicht, wenn dieses Programm, aufgerufen durch ein anderes als separate Instanz, im Systemaccount läuft.

Noch mal, dann gehört der Prozess nicht dir, sondern dem Systemaccount!!!


Zitat:
Ein Kollege meinte, wenn dieses Programm (Test.exe) über WM_Close beendet würde, wäre der Account (solange nicht vom Betriebssystem o.a. gesperrt), nicht relevant. Kann das stimmen?

Probier es aus.


kandesbunzler - So 10.12.06 16:54

Hallo allerseits,

ich habe das Problem mittlerweile dahingehend gelöst, indem ich das betreffende Programm vor dem externen Aufruf mit meinem Account aufrufe - quasi den Aufruf 'abfange'. Damit kann ich es auch wieder beenden.
Danke an alle für die Infos!

Auf bald ...
kandesbunzler.