Ausführen von ProcMon.exe mit PsExec.exe auf Remote-Zielsystemen
Process Monitor ist ein mächtiges Tool zur Prozess Analyse in Windows Systemen. Obwohl es eine Reihe von Parametern zur automatisierten Ausführung hat, gibt es keinen, der Process Monitor remote ausführen lässt:

Process Monitor Parameter
Abhilfe schafft psexec.exe
, mit dem Programme remote gestartet werden können. Voraussetzung dafür ist funktionierendes RPC und ein Zugriff auf die ADMIN$-Shares des Zielsystems. Beide Tools sind Bestandteil der Sysinternals Suite, die hier heruntergeladen werden kann.
Mit foldendem Befehl kann nun procmon.exe
auf dem Zielsystem ausgeführt werden (weitere Parameter nach Bedarf):
psexec.exe -sdc \\<Computername> procmon.exe /accepteula /backingfile C:\Temp\procmon.pml /quiet
Parameter psexec.exe
:
-s
– führt Process Monitor im Zielsystem im SYSTEM Kontext aus-d
– wartet nicht, bis der Prozess im Zielsystem beendet ist-c
– kopiertprocmon.exe
vor der Ausführung auf das Zielsystem
Parameter procmon.exe
:
/accepteula
– akzeptiert die EULA/backingfile
– definiert Datei und Pfad für die Ausgabedatei/quiet
– führt Process Monitor im Hintergrund aus
Ist Process Monitor gestartet, kann das zu analysierende Problem nun reproduziert werden. Danach muss Process Monitor beendet werden, um die Ausgabedatei zu speichern. Dazu ist folgender Befehl auszuführen (beendet man Process Monitor auf anderem Weg – z.B. zur Reboot oder Killen der Prozess ID – ist die Ausgabedatei i.d.R. beschädigt und kan nicht ausgelesen werden):
psexec.exe -sd \\<Computername> procmon.exe /accepteula /terminate /quiet
Parameter psexec.exe
:
-s
– führt Process Monitor im Zielsystem im SYSTEM Kontext aus-d
– wartet nicht, bis der Prozess im Zielsystem beendet ist
Parameter procmon.exe
:
/accepteula
– akzeptiert die EULA/terminate
– beendet alle Process Monitor Instanzen und speichert die Ausgabedatei/quiet
– führt Process Monitor im Hintergrund aus
Das Ganze kann man dann auch per CMD-Skript ausführen. Dazu erstellt man z.B. ein Script pm-remote.cmd und startet es mit dem Computernamen als Zusatz (pm-remote.cmd <Computername>
). Das Skript führt als Beispiel folgende Aufgaben aus:
- Process Monitor wird kopiert und remote im SYSTEM Kontext gestartet
- Das Skript wartet auf eine Eingabe, um Process Monitor zu beenden
- Process Monitor wird beendet
- Die Ausgabedatei wird lokal kopiert und im Zielsystem gelöscht
- Die Ausgabedatei wird mit Process Monitor zur Analyse lokal geöffnet
@echo off psexec.exe -sdc \\%1 procmon.exe /accepteula /backingfile C:\Temp\procmon.pml /quiet pause psexec.exe -sd \\%1 procmon.exe /accepteula /terminate /quiet xcopy \\%1\C$\Temp\procmon.pml C:\Temp\ del \\%1\C$\Temp\procmon.pml procmon.exe /openlog C:\Temp\procmon.pml
Quellen:
https://4sysops.com/