Wie erkenne ich einen abgebrochenen Windows-Prozess, wenn ich noch seine PID habe?

7081
miroxlav

Hintergrund: Mitten in meiner Arbeit erschien plötzlich eine Lizenzvereinbarung für die Installation von "Microsoft Mouse and Keyboard Center". Ich würde gerne wissen, welcher Prozess das Setup gestartet hat, aber mit Process Explorer habe ich gesehen, dass es weg ist. Ich konnte nur die PID finden (siehe Abbildung).

Frage:

Wenn Sie Process Explorer verwenden, kennen Sie möglicherweise die Situation, in der der übergeordnete Prozess des Prozesses nicht mehr vorhanden ist und Sie können nur dessen PID sehen:

enter image description here

Gibt es einige Windows-Protokolle, die eine Zuordnung der PID zum laufenden Prozess enthalten, damit ich herausfinden kann, welcher Prozess unter der angegebenen PID ausgeführt wurde?

Vorzugsweise interessiere ich mich für Szenarien, bei denen ich nicht damit gerechnet habe, und daher Process Monitor nicht zur Erfassung von Ereignissen im System verwendet hat.

14

3 Antworten auf die Frage

11
DavidPostill

Gibt es einige Windows-Protokolle, die die Zuordnung der PID zum laufenden Prozess enthalten?

Standardmäßig gibt es keine solchen Protokolle. Sie können jedoch Prozessverfolgungsereignisse im Windows-Sicherheitsereignisprotokoll aktivieren.

Anmerkungen:


Verwenden von Prozessverfolgungsereignissen im Windows-Sicherheitsprotokoll

In Windows 2003 / XP erhalten Sie diese Ereignisse, indem Sie einfach die Überwachungsrichtlinie "Process Tracking" aktivieren.

In Windows 7/2008 müssen Sie die Prüfprozesserstellung und optional die Unterkategorien für den Prüfprozessabbruch aktivieren, die Sie unter Erweiterte Überwachungsrichtlinienkonfiguration in Gruppenrichtlinienobjekten finden.

Diese Ereignisse sind unglaublich wertvoll, da sie ein umfassendes Prüfprotokoll jedes Mal enthalten, wenn eine ausführbare Datei im System als Prozess gestartet wird. Sie können sogar bestimmen, wie lange der Prozess ausgeführt wurde, indem Sie das Prozesserstellungsereignis mit dem Prozessbeendigungsereignis unter Verwendung der in beiden Ereignissen gefundenen Prozess-ID verknüpfen. Beispiele für beide Ereignisse werden unten gezeigt.

enter image description here

Quelle Verwendung von Prozessverfolgungsereignissen im Windows-Sicherheitsprotokoll


So aktivieren Sie die Audit-Prozesserstellung

  1. Führen Sie gpedit.msc aus

  2. Wählen Sie "Windows-Einstellungen"> "Sicherheitseinstellungen"> "Lokale Richtlinien"> "Überwachungsrichtlinie" aus.

    enter image description here

  3. Klicken Sie mit der rechten Maustaste auf "Audit-Prozessverfolgung" und wählen Sie "Eigenschaften" aus.

  4. Überprüfen Sie "Erfolg" und klicken Sie auf "OK".

    enter image description here


Was ist Audit-Prozessverfolgung

Diese Sicherheitseinstellung legt fest, ob das Betriebssystem prozessbezogene Ereignisse wie Prozesserstellung, Prozessbeendigung, Duplizierung und indirekten Objektzugriff überwacht.

Wenn diese Richtlinieneinstellung definiert ist, kann der Administrator angeben, ob nur Erfolge, nur Fehler sowohl Erfolge als auch Fehler überwacht werden sollen, oder ob diese Ereignisse überhaupt nicht geprüft werden sollen (dh weder Erfolge noch Fehler).

Wenn die Erfolgsprüfung aktiviert ist, wird jedes Mal, wenn das Betriebssystem eine dieser prozessbezogenen Aktivitäten ausführt, ein Überwachungseintrag generiert.

Wenn die Fehlerüberwachung aktiviert ist, wird jedes Mal ein Überwachungseintrag generiert, wenn das Betriebssystem eine dieser Aktivitäten nicht ausführt.

Voreinstellung: Keine Überwachung

Wichtig: Um die Überwachungsrichtlinien besser steuern zu können, verwenden Sie die Einstellungen im Knoten Erweiterte Überwachungsrichtlinienkonfiguration. Weitere Informationen zur Konfiguration der erweiterten Überwachungsrichtlinie finden Sie unter http://go.microsoft.com/fwlink/?LinkId=140969 .

Dave, vielleicht könnten Sie den Ansatz "schnellste Waffe im Westen" (http://meta.stackexchange.com/a/9758/253161) verwenden. Während Sie Ihre lange und ausführliche Antwort verfassten, führte ich die andere Antwort (die Sie später hinzugefügt haben) aus und wollte sie gerade akzeptieren. So, jetzt habe ich ein Dilemma, welches die Antwort akzeptiert ... :) miroxlav vor 9 Jahren 0
Ich hätte lieber die beste Antwort als die erste Antwort;) Wenn es sich um dasselbe handelt, dann ist es ein Bonus. Ich habe Sie (in einem jetzt aufgeräumten Kommentar) darüber informiert, dass ich meine Antwort vorbereite. Und ich verwende eine langsame Internetverbindung über mein Handy: / DavidPostill vor 9 Jahren 1
Oh ja, das hast du. OTOH, scheuen Sie sich nicht, zu schreiben "Sie können Audit-Protokolle in lokalen Richtlinien aktivieren", veröffentlichen und erstellen Sie Antworten mit Bildungswert. Manchmal könnte mir sogar ein kleiner Hinweis besser helfen (das OP), als 60 Minuten auf eine großartige Antwort zu warten :) Ich meine, ich weiß, wo die lokalen Richtlinien gelten, ich brauchte nur einen kleinen Hinweis. miroxlav vor 9 Jahren 0
@DavidPostill: Es wäre schön, wenn du erwähnen könntest, wie oft diese Protokolle gesäubert werden (oder wie oft sie manuell gesäubert werden sollten), weil ich mir vorstellen kann, dass sie ziemlich lang werden können ... Mehrdad vor 9 Jahren 0
@Mehrdad Ja, sie könnten groß werden. Die Ereignisprotokolle werden nicht automatisch gelöscht. Soweit mir bekannt ist, ist es nicht möglich, einzelne Ereignisse aus dem Protokoll zu löschen, sondern nur das gesamte Protokoll zu löschen (zu löschen). Und wie oft sie manuell gelöscht werden sollten, ist meinungsbasiert: / DavidPostill vor 9 Jahren 0
@Mehrdad Die Ereignisprotokolle können bei Bedarf mit `wevtutil` von der Befehlszeile gelöscht werden. Dies ist einfacher als die Verwendung der Ereignisanzeige-GUI. DavidPostill vor 9 Jahren 1
3
Scott Chamberlain

Die einzige Möglichkeit zu sehen ist, dass Sie die Überwachung aktiviert haben müssen, um die Erstellung von Prozessen zu verfolgen.

secpol.mscGehen Sie im Programm "Lokale Sicherheitsrichtlinie" (geben Sie vom Startbildschirm aus die Suche ein, wenn Sie Probleme haben). Gehen Sie zu "Sicherheitseinstellungen -> Lokale Richtlinien -> Überwachungsrichtlinie" und aktivieren Sie die Option "Überwachung des Überwachungsprozesses" für "Erfolg".

enter image description here

Gehen Sie anschließend zur Ereignisanzeige und prüfen Sie das Ereignisprotokoll "Secruity". Dort werden für jedes Mal, wenn ein Prozess gestartet oder beendet wird, die Einträge "Audit Success" angezeigt.

Ein Prozess wurde beendet.  Gegenstand: Sicherheits-ID: SYSTEM Kontoname: SCOTT-PC $ Kontodomäne: ARBEITSGRUPPE Anmelde-ID: 0x3E7  Prozessinformationen: Prozess-ID: 0x1338 Prozessname: C: \ Windows \ System32 \ agreement.exe Beendigungsstatus: 0x0 

Sie müssen die Prozess-ID, nach der Sie suchen, von dezimal in hexadezimal konvertieren (3336 wird 0xD08). Die einfachste Konvertierungsmethode ist der geöffnete Windows-Rechner. Wechseln Sie in den Modus "Programmer", geben Sie die Nummer im Modus "dec" ein, und klicken Sie auf "hex". Die angezeigte Zahl wird für Sie in Hex umgewandelt.

Ja, das ist die Art von Antwort, die ich erwartet hatte. Einfach gesagt: Aktivieren Sie die Protokollierung und können Sie die Ergebnisse überprüfen. miroxlav vor 9 Jahren 0
0
mrTomahawk

Wenn dies einmalig ist und Sie Ihre Prozesse nicht immer protokollieren möchten, empfiehlt sich die Verwendung von Microsoft Process Monitor ( https://technet.microsoft.com/en-us/Library/bb896645.aspx ). Es muss ausgeführt werden, bevor der Populäre erscheint, aber auch wenn der übergeordnete Prozess tot ist, hat er alle Informationen erfasst, nach denen Sie gesucht haben.