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

14

Hintergrund: Während meiner Arbeit erschien plötzlich ein Lizenzvertrag für die Installation von "Microsoft Mouse and Keyboard Center". Ich würde gerne verstehen, welcher Prozess das Setup gestartet hat, aber mit Process Explorer habe ich gesehen, dass es weg ist. Ich konnte nur die PID finden (siehe Screenshot).

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 nur die PID sehen können:

Bildbeschreibung hier eingeben

Gibt es Windows-Protokolle, die die Zuordnung von PID zum laufenden Prozess enthalten, damit ich herausfinden kann, welcher Prozess unter der angegebenen PID lief?

Ich interessiere mich vorzugsweise für Szenarien, in denen ich dies nicht erwartet habe, und habe daher Process Monitor nicht zum Erfassen von Ereignissen im System verwendet.

Miroxlav
quelle

Antworten:

11

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

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

Anmerkungen:


Verwendung von Prozessverfolgungsereignissen im Windows-Sicherheitsprotokoll

In Windows 2003 / XP erhalten Sie diese Ereignisse, indem Sie einfach die Überwachungsrichtlinie für die Prozessverfolgung aktivieren.

In Windows 7/2008 + müssen Sie die Unterkategorien Audit Process Creation und optional Audit Process Termination aktivieren, die Sie unter Advanced Audit Policy Configuration in Gruppenrichtlinienobjekten finden.

Diese Ereignisse sind unglaublich wertvoll, da sie einen umfassenden Prüfpfad für jedes Mal bereitstellen, wenn eine ausführbare Datei auf dem System als Prozess gestartet wird. Sie können sogar bestimmen, wie lange der Prozess ausgeführt wurde, indem Sie das Prozesserstellungsereignis mit dem Prozessbeendigungsereignis verknüpfen, indem Sie die in beiden Ereignissen festgestellte Prozess-ID verwenden. Beispiele für beide Ereignisse sind unten aufgeführt.

Bildbeschreibung hier eingeben

Quelle Verwendung von Prozessverfolgungsereignissen im Windows-Sicherheitsprotokoll


So aktivieren Sie die Audit-Prozess-Erstellung

  1. Führen Sie gpedit.msc aus

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

    Bildbeschreibung hier eingeben

  3. Klicken Sie mit der rechten Maustaste auf "Audit Process Tracking" und wählen Sie "Eigenschaften".

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

    Bildbeschreibung hier eingeben


Was ist Audit Process Tracking?

Diese Sicherheitseinstellung legt fest, ob das Betriebssystem prozessbezogene Ereignisse wie das Erstellen von Prozessen, das Beenden von Prozessen, das Verarbeiten von Duplikaten und den indirekten Objektzugriff überwacht.

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

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

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

Standardeinstellung: Keine Überwachung

Wichtig: Um mehr Kontrolle über Überwachungsrichtlinien zu erhalten, verwenden Sie die Einstellungen im Knoten Erweiterte Überwachungsrichtlinienkonfiguration. Weitere Informationen zur erweiterten Konfiguration von Überwachungsrichtlinien finden Sie unter http://go.microsoft.com/fwlink/?LinkId=140969 .

DavidPostill
quelle
Dave, vielleicht könntest du den Ansatz "Schnellste Waffe im Westen" verwenden . Während Sie Ihre lange und ausführliche Antwort geschrieben haben, habe ich die Schritte in der anderen Antwort ausgeführt (die gleiche, die Sie später hinzugefügt haben) und wollte sie annehmen. Also jetzt habe ich ein Dilemma, das zu akzeptieren ... :)
Miroxlav
1
Ich hätte lieber die beste Antwort als die erste Antwort;) Wenn sie dasselbe sind, dann ist es ein Bonus. Ich habe Sie (in einem jetzt bereinigten Kommentar) darüber informiert, dass ich meine Antwort vorbereite. Und ich benutze eine langsame Internetverbindung über mein Handy: /
DavidPostill
Oh ja, das hast du getan. OTOH, scheuen Sie sich vielleicht nicht zu schreiben: "Sie können die Überwachungsprotokollierung in lokalen Richtlinien aktivieren", posten Sie und fahren Sie mit der Erstellung von Antworten mit pädagogischem Wert fort. Manchmal hilft mir (dem OP) sogar ein kleiner Hinweis besser, als 60 Minuten auf eine gute Antwort zu warten :) Ich meine, ich weiß, wo die lokalen Richtlinien sind, ich brauchte nur einen kleinen Hinweis.
Miroxlav
@DavidPostill: Wäre schön, wenn Sie erwähnen könnten, wie oft diese Protokolle gesäubert werden (oder wie oft sie manuell gesäubert werden sollten), da sie
meiner Meinung
1
@Mehrdad Die Ereignisprotokolle können bei Bedarf über die Befehlszeile gelöscht werden wevtutil. Das ist einfacher als die Verwendung der Ereignisanzeige-GUI.
DavidPostill
3

Die einzige Möglichkeit, dies zu sehen, besteht darin, dass Sie das Audit aktivieren müssen, um die Erstellung von Prozessen zu verfolgen.

secpol.mscGehen Sie im Programm "Lokale Sicherheitsrichtlinie" (geben Sie auf dem Ausführungsbildschirm ein, wenn Sie Probleme haben, diese zu finden) zu "Sicherheitseinstellungen -> Lokale Richtlinien -> Überwachungsrichtlinie" und aktivieren Sie dann die "Überwachung des Überwachungsprozesses" für "Erfolg".

Bildbeschreibung hier eingeben

Sobald Sie dies getan haben, rufen Sie die Ereignisanzeige auf und überprüfen das Ereignisprotokoll "Sicherheit". Dort werden bei jedem Start oder Beenden eines Prozesses die Einträge "Erfolg überwachen" angezeigt.

Ein Prozess wurde beendet.

Gegenstand:
    Sicherheits-ID: SYSTEM
    Kontoname: SCOTT-PC $
    Account Domain: ARBEITSGRUPPE
    Anmelde-ID: 0x3E7

Prozessinformationen:
    Prozess-ID: 0x1338
    Prozessname: C: \ Windows \ System32 \ consent.exe
    Ausgangsstatus: 0x0

Sie müssen die gesuchte Prozess-ID von dezimal in hexadezimal konvertieren (3336 wird zu 0xD08). Der einfachste Weg, um zu konvertieren, ist, den Windows-Rechner zu öffnen, in den "Programmer" -Modus zu wechseln, die Zahl im "dec" -Modus einzugeben und dann auf "hex" -Modus zu klicken. Die angezeigte Zahl wird für Sie in Hex umgewandelt.

Scott Chamberlain
quelle
Ja, das ist die Art von Antwort, die ich erwartet habe. Einfach gesagt: Aktivieren Sie die Protokollierung und können Sie die Ergebnisse überprüfen.
Miroxlav
0

Wenn dies einmalig ist und Sie nicht immer Ihre Prozesse protokollieren möchten, empfehle ich die Verwendung von Microsoft Process Monitor ( https://technet.microsoft.com/en-us/Library/bb896645.aspx ). Es muss ausgeführt werden, bevor das Popular erzeugt wird, aber selbst wenn der übergeordnete Prozess beendet ist, werden alle Informationen erfasst, nach denen Sie gesucht haben.

mrTomahawk
quelle