schärferes Mittel als ProcessClose

  • Hallo Freunde der automatisierten Schritte,

    unter Windows 8.1 / 64 gibt es eine Reihe von abgestürzten Programmen, wie z.B. Hot Alarm Clock, die sich nicht über ProcessClose beenden lassen. Nur ein Windows-Neustart hilft :)

    Welche "schärferen Mittel" kennt Ihr, ggf. über API Befehle oder externe Tools, mit denen man solche hartnäckigen Prozesse dennoch killen kann?

    Wie kann ich herausfinden, warum einige Prozesse so hartnäckig sind und sich nicht beenden lassen?
    Autoit gibt mit ProcessClose nur die Fehlermeldung: 3 = TerminateProcess fehlgeschlagen ... damit lässt sich wenig anfangen.

    Oder gibt es wirklich kein Mittel auf Administrator-Ebene, welches Prozesse killen kann, die *nicht* von Wndows stammen?

    Viele Grüße
    AutoMit

  • Hallo Bugfix,

    habe die Pid mit Autoit ausgelesen, cmd als Admin, und leider ist pskill unscharf.

    Unable to kill process 6048:
    Zugriff verweigert

    Wie kann man den Zugriff erlangen?

    Und vor allem, wodurch können sich Programme (das hier ist ein Wecker) so tief ins System graben, dass man sie nicht killen kann?

    Es müsste doch ein Systemtool geben, was wirklich jeden Prozess (Windows-Prozesse ausgenommen) beenden kann - oder?

  • Es müsste doch ein Systemtool geben, was wirklich jeden Prozess (Windows-Prozesse ausgenommen) beenden kann - oder?

    Dann könnte man jede AV Software / Firewall beenden und somit das System kompromittieren.

    Das Thema sollte hier nicht weitergeführt werden!

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Es gibt bestimmt eine Methode wie das machbar ist. Ich habe bisher keinen eingefrohrenen Prozess gehabt die sich nur durch einen Systemneustart beenden lässt. Normalerweise kann der Taskmanager alles was abgestürzt ist beenden.

    Es gibt aber einige Sperren die Windows verhängen kann. Z.B. kann man ja auch keine Datei löschen, während ein anderes Programm ein Handle der Datei offenhält. Also ist es auch gut vorstellbar, dass es Prozesse gibt die von einem Windowsprozess offengehalten werden, sodass sie nicht beendet werden können, solange der Prozess sie nicht freigibt. Wie man sich da Abhilfe schafft weiß ich leider nicht. Auf meinem Rechner läuft im Hintergrund ein in AutoIt geschriebener Taskkiller der unerwünschtes Zeug zuverlässig mit der BuildIn Funktion ProcessClose beendet, hatte bisher nie ein Problem damit...

  • Misterspeed, ich habe das nochmal als Admin, ohne UAC, per Hand in der CMD getestet, geht nicht. Daher auch nicht mit #requireadmin.

    UEZ, das ist natürlich ein Argument. Nur warum sollte eine "Wecker" wie Hot Alarm Clock so tief im System sitzen, dass er nicht gekillt werden kann?
    Im Moment habe ich 5 hängede Prozesse davon.

    AV Software, Firewalls werden mit Sicherheit anders im System eingeklinkt sein, als ein "Wecker" und AV Software, Firewalls sind aktiv laufende Prozesse.


    Wichtig - hier geht es um inaktive Prozesse - die hängen geblieben sind. Nur noch die exe hängt im Speicher fest. Keine Funktionalität.

    Rührt diese Stufe bereits an den Forenregeln? Dann psst.

    Interessant wäre es schon, denn wie kann ein Programmierer herausfinden, was sein Programm in den Zustand versetzt, dass es so tief im System hängt, dass es bei einem Absturz nicht mehr beendet werden kann. Wie gesagt, es ist ein Wecker. Und hier dürften höchstens ein paar Timer laufen.

    @Mars - die Timer könnten nach Deiner Erklärung dafür verantwortlich sein, weil es ja laufende Terminerinnerungen sind.

    Dass sich Prozesse nicht beenden lassen, habe ich häufiger, z.B. von einfachen Textbausteinprogrammen (wahrscheinlich registrierter Tastaturhook) bis hin zu anderen Utilities. Selbst der Browser Chrome "frisst" sich häufiger so fest, dass er nur durch einen Neustart beendet werden kann. ProcessClose half in keinem der Fälle (mit Admin etc.). Und häufig ist es so, dass das Programm nicht neu gestartet werden kann, bis der hängen gebliebene Prozess beendet ist.


    2 Mal editiert, zuletzt von AutoMit (25. Januar 2016 um 22:18)

  • Bin auf meiner Suche bei MS auf taskill gestoßen, nun wirds interessant:

    taskkill /pid 10764
    FEHLER: Der Prozess mit PID 10764 konnte nicht beendet werden.
    Ursache: Die Beendigung dieses Prozesses muss erzwungen werden
    (mit der Option /F).


    taskkill /pid 10764 /F
    FEHLER: Der Prozess mit PID 10764 konnte nicht beendet werden.
    Ursache: Von dieser Aufgabe wird momentan keine Instanz ausgeführt.

    Mit den anderen 4 pid probiert - gleiches Ergebnis.

    Im Taskmanager unter Details sind die Prozesse mit der pid zu sehen.

    Was bedeutet:

    "Von dieser Aufgabe wird momentan keine Instanz ausgeführt."

  • Schau mal in die Doku von taskkill, dort sollte ja erläutert sein was der Parameter /f bewirkt. Vielleicht reicht auch schon taskkill /h (diesen Parameter gibt es hoffentlich) ja auch schon für das Verständniss.