Kann ich erkennen, wann ein Windows-Prozess gestartet wird, ohne Code auf Systemebene zu schreiben?

Kann ich erkennen, wann ein Windows-Prozess gestartet wird, ohne Code auf Systemebene zu schreiben?

Gibt es eine Möglichkeit, mithilfe von Leistungsüberwachung, WMI oder anderen frei verfügbaren Tools zu erkennen, wann ein bestimmter Prozess gestartet wird oder, noch besser, kurz vor dem Start steht? Anschließend können außerdem die Befehlszeilenparameter erfasst werden, die an die Einstiegspunktfunktion für diesen Prozess übergeben werden.

Das bloße Erkennen, dass der Prozess irgendwann einmal gestartet wurde und bereits ausgeführt wird, ist für meine Anforderungen wertlos. Ich habe Visual Studio so konfiguriert, dass Chrome für eine Debugsitzung gestartet wird, und ich möchte a) herausfinden, ob VS cmd.exe oder internen Code zum Starten von Chrome verwendet, und b) welche Parameter VS an Chrome übergibt, um es für integriertes Debuggen zu konfigurieren.

Oder gibt es vielleicht eine Möglichkeit, mit PowerShell eine Art Überwachung für das Prozessabbild, also die EXE-Datei, einzurichten, um zu sehen, wann zur Ausführung darauf zugegriffen wird?

Antwort1

Sie möchten höchstwahrscheinlich den Prozess beobachten, der den Prozess STARTET, und nicht nur den Zielprozess selbst.

Prozessmonitorvon SysInternals sollte dies erfassen können.

Filtern Sie nach dem Visual Studio-Prozess (und möglicherweise auch nach CMD und Chrome), lösen Sie die Debug-Sequenz in VS aus und sehen Sie, was erfasst wird.

Eine weitere Option, ebenfalls von SysInternals, wäreProcess Explorer, im Grunde ein Task-Manager auf Steroiden, der die Argumente erfasst, die jeden Prozess gestartet haben. Wenn VS einen Vermittler startet, der dann Chrome öffnet UND dieser Vermittler als übergeordneter Prozess des Chrome-Prozesses weiter ausgeführt wird, zeigt Ihnen Process Explorer alle übergebenen Argumente an.

verwandte Informationen