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

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 – kopiert procmon.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/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.