Kostenlose Microsoft-Werkzeuge

Sysinternals - mit Gratis-Tools Prozesse, Dienste und Ressourcen analysieren

22.06.2014 von Thomas Joos
Unerklärliche Systemlast, abstürzende Programme - da hilft Administratoren und Entwicklern oft nur ein Blick hinter die Windows-Kulissen. Mit kostenlosen Tools von Microsoft kann man eingehend analysieren, was im System gerade vor sich geht. Wir stellen einige Programme praxisnah mit Beispielen vor.

Microsoft gliedert seine kostenlosen Sysinternals-Tools in verschiedene Kategorien, wir widmen jeder Kategorie einen eigenen Beitrag und stellen exemplarisch einige Programme praxisnah vor. Passt die eine oder andere Lösung aus einem anderen Bereich oder aus den Windows-Bordmitteln thematisch dazu, bleibt dies nicht unerwähnt. Mit den Sysinternals-Tools richtet sich Microsoft an IT-Professionals im Allgemeinen und Administratoren im Besonderen. Einige der Tools wurden von den Autoren inzwischen auf den neuesten Stand gebracht, sodass sie auch mit Windows 8 oder 8.1 funktionieren.

Die Werkzeuge sollen Admins die Verwaltung, Problembehebung und Diagnose von Windows-Systemen und -Anwendungen erleichtern. Diesmal geht es um ausgewählte Dienstprogramme, mit denen sich analysieren lässt, wie Prozesse ablaufen und welche Ressourcen genutzt werden. Bisher sind in dieser Artikelserie folgende Beiträge erschienen:

Process Monitor - Dateisystem, Registry und Prozesse überwachen

Die Überwachung laufender Prozesse auf einem Computer oder Server ist vor allem im Bereich der Sicherheit und Systemstabilität ein wichtiger Faktor. Mit dem Process Monitor können Sie in einer grafischen Oberfläche ausführlich und in Echtzeit alle Aktivitäten im Dateisystem, der Registry und der Prozesse/Threads überwachen und farblich markieren. Über Schaltflächen aktivieren Sie die einzelnen Überwachungsfunktionen oder deaktivieren sie wieder.

Auf diese Weise können Sie die Überwachung der Registry- und der Dateisystemzugriffe sowie die Abfrage der Prozessaktivität steuern und jeweils nur den Bereich überwachen, der Sie interessiert. Wenn Sie alle Optionen überwachen lassen, kann das Fenster schnell unübersichtlich werden.

Bildergalerie:
Process Monitor
Aktivieren und Deaktivieren verschiedener Überwachungsmöglichkeiten im Process Monitor.
Process Monitor
Verwenden von Filtern im Process Monitor.
Process Monitor
Anpassen der Ansichten im Process Monitor.
Process Monitor
Anzeigen weiterer Informationen zu Prozessen und beteiligter Dateien.
Process Monitor
Kontextmenü einzelner Prozesse mit der Möglichkeit der Hervorhebung.

Das Programm ist voll transportfähig (zum Beispiel auf USB-Sticks) - das gilt übrigens für alle Tools von Sysinternals. Es läuft auf Client-Systemen ab Windows XP SP2 und auf Servern ab Windows Server 2003 SP1. Sie erhalten umfassende Daten zu allen gestarteten und beendeten Prozessen und Threads. Der Aufbau von TCP/IP-Verbindungen und der UDP-Verkehr, also der Netzwerkverkehr des Servers, lassen sich ebenso überwachen. Allerdings speichert der Process Monitor nicht den Inhalt der TCP-Pakete, sodass sich keine Daten auslesen lassen, sondern nur die reine Funktionalität des Netzwerks. Dazu kommt, dass der Fokus des Tools nicht auf der Netzwerküberwachung liegt.

Auf Wunsch kann Process Monitor mehr Informationen zu laufenden Prozessen anzeigen, zum Beispiel die zum Prozess gehörenden DLL-Dateien. Sie können filtern, die Anzeige anpassen und unnötige Informationen ausblenden oder den Fokus auf spezielle Daten richten.

Process Monitor im Einsatz

Im Menü Tools stehen verschiedene Ansichten zur Verfügung. Der Process Monitor kann den Boot-Vorgang von Servern überwachen, da er selbst sehr früh startet. Alle Ergebnisse lassen sich dabei in eine Datei umleiten. Kann Windows nicht starten, ist der Fehler durch Analyse dieser Datei schnell gefunden.

Haben Sie die Anzeige angepasst, können Sie die Daten über das Menü File speichern. Auf einem anderen Rechner kann man jederzeit das aktuelle Fenster wieder laden und Filter setzen sowie das Ergebnis durchsuchen. Über File\Export Configuration lassen sich die Einstellungen des Tools exportieren. Im Menü steht zu diesem Thema entsprechend auch der Import-Befehl zur Verfügung.

Klicken Sie doppelt auf einen Eintrag, öffnet sich ein Fenster mit weiteren, sehr detaillierten Informationen zur Arbeit des Prozessors und zu den dabei verwendeten Dateien. Wenn Sie im Informationsfenster wiederum auf eine der beteiligten Dateien des Prozesses klicken, erhalten Sie zusätzliche Informationen.

Die Details eines Prozesses können Sie ebenfalls als *.csv-Datei abspeichern, um diese später weiter zu analysieren. Wie bei Autoruns haben Sie auch im Process Monitor die Möglichkeit, über das Kontextmenü eine Online-Suche zum ausgewählten Prozess durchzuführen. Über das Kontextmenü lassen sich ein Prozess und dessen Ausgabe farblich hervorheben.

Über das Kontextmenü eines Prozesses können Sie alle überwachten Vorgänge, die vor dem Prozess stattgefunden haben, ausblenden lassen, indem Sie die Option Exclude Events Before auswählen. Weitere Möglichkeiten im Kontextmenü sind das Einblenden nur eines einzelnen Prozesses und der Vorgänge, die dieser durchführt. Filter erstellen Sie über den Menüpunkt Filter\Filter. Bestandteil des Download-Paketes ist eine englischsprachige Hilfedatei, die beim Umgang mit dem Tool hilft.

Process Explorer

Ein wichtiges Tool für die Analyse der laufenden Prozesse auf einem Computer ist der Process Explorer.

Alles im Blick: die Systemüberwachung mit dem Process Explorer.

Process-Explorer zeigt Prozesse in einem Fenster und darunter weitere Informationen zum aktuellen Prozess an, zum Beispiel den aktuellen Zugriff auf Verzeichnisse. Das Tool enthält wesentlich mehr Informationen als der Taskmanager in Windows.

Wenn Sie auf die Messfenster im oberen Bereich klicken, blendet der Process Explorer ein Systeminformationsfenster ein, das ähnliche Informationen enthält wie der Taskmanager, diese aber viel umfangreicher auf verschiedenen Registerkarten darstellt.

Einblicke: Zu einem Prozess lassen sich detaillierte Informationen abrufen.

Über Options\Replace Task Manager können Sie den Standard-Taskmanager in Windows durch das Tool ersetzen. Rufen Sie diesen künftig auf, zum Beispiel über das Kontextmenü der Taskleiste, startet direkt der Process Explorer. Auf dem gleichen Weg können Sie diese Option wieder rückgängig machen.

Über View\Show Lower Pane blenden Sie im unteren Bereich das Übersichtsfenster ein. Anschließend konfigurieren Sie über View\Lower Pane View, ob Sie im unteren Bereich die DLLs der Prozesse oder Handles anzeigen wollen. Über den Menüpunkt Process können Sie ausgewählte Prozesse beenden, neu starten oder deren Eigenschaften anzeigen.

ListDLLs - geladene DLL-Dateien anzeigen

Wollen Sie auf einem Computer alle geladenen DLL (Dynamic Link Library, Dynamische Verbindungsbibliothek)-Dateien anzeigen, ist ListDLLs das aktuell beste Werkzeug dazu.

Schnellzugriff: Die geladenen DLLs eines Systems können angezeigt werden.

Das Befehlszeilen-Tool zeigt Ihnen in Echtzeit alle DLL-Dateien an, die derzeit auf dem Server gestartet sind. Sie sehen den Versionsstand der Datei sowie den genauen Speicherort. Wollen Sie die Ausgabe in eine Textdatei umleiten, verwenden Sie zum Beispiel den Befehl:

listdlls >c:\temp\dll.txt

Im alten Windows-NT-Resource-Kit gab es noch das Tool tlist, das ähnliche Informationen dargestellt hat, aber nicht den kompletten Pfadnamen der DLL-Datei. Das Tool hat keinerlei komplexe Optionen, es soll lediglich schnell und einfach DLL-Dateien anzeigen. Sie können bei ListDLLs die Anzeige auf Basis geladener Prozesse starten. Dazu verwenden Sie den Befehl

Listdlls <Name oder Teil des namens des Prozesses oder dessen PID>

Anschließend zeigt ListDlls nur die Daten und geladenen DLLs dieses Prozesses an. In der PowerShell können Sie Prozesse verwalten, ohne auf das Sysinternal-Tool ListDLLs zurückgreifen zu müssen.

Über den Befehl

Get-Process

können Sie sich alle laufenden Prozesse eines Computers anzeigen. Wollen Sie aber zum Beispiel nur alle Prozesse mit dem Anfangsbuchstaben »S« angezeigt bekommen, geben Sie den Befehl

Get-Process s*

ein. Sollen die Prozesse zusätzlich noch sortiert werden, zum Beispiel absteigend nach der CPU-Zeit, geben Sie Get-Process s*, gefolgt

von der Pipe-Option |Sort-Object cpu -descending, ein.

ProcDump - Absturzanalysen für Prozesse erstellen

Belastet ein Prozess einen Computer zu stark und muss daher beendet werden, kann das Tool ProcDump eine Analysedatei des Abbruches erstellen. Der Fokus des Tools liegt darauf, Verbrauchsspitzen für die CPU-Nutzung von Prozessen zu analysieren. Die Syntax des Befehls lautet:

procdump [-64] [-b] [[-c CPU-Verbrauch] [-u] [-s Sekunden]] [-n <Anzahl>] [-e [1]] [-h] [-m <Grenzwert >] [-ma | -mp] [-o] [-p <Trigger>] [-r] [-t] < Prozess> [<Datei>]] | [-x <image file> <Dumpdatei> ]

• -64 - Erstellt einen 64-Bit-Dump statt eines 32-Bit-Dumps.

• -c - Grenzwert, bei dem das Tool den Dump erstellen soll.

• -e - Erstellt einen Dump, wenn der Prozess abstürzt.

• -h - Schreibt einen Dump, wenn das Prozessfenster hängt.

• -m - Grenzwert für Dump, wenn der Prozess den Arbeitsspeichergrenzwert überschreitet.

• -ma - Schreibt einen Dump des kompletten Bereichs des Arbeitsspeichers, den der Prozess verbraucht.

• -mp - Erstellt einen Dump, der Threads und Handles des Prozesses enthält.

• -n - Anzahl der Dumps, die ProcDump erstellt, bis das Tool sich beendet.

• -o - Überschreibt existierende Dumps.

• -p - Verwendet spezielle Performance-Counter als Trigger, zum Beispiel procdump outlook -p "\Processor(_Total)\% Processor Time" 20.

• -r - Klont den Prozess zum Erstellen des Dumps (erst ab Windows 7 möglich).

• -t - Erstellt einen Dump, wenn der Prozess beendet wird oder abstürzt.

Wollen Sie für einen Prozess zum Beispiel fünf Dumps erstellen, wenn dieser für 60 Sekunden mehr als 50 Prozent CPU-Last verursacht, und vorhandene Dumps überschreiben, verwenden Sie den Befehl:

procdump -c 50 -s 60 -n 5 -o <Name des Prozesses> <Pfad>

Prozesse anzeigen und killen - PSList und PSKill

Um Prozesse in der Befehlszeile anzuzeigen und zu beenden, helfen die beiden Tools PSList und PSKill. Beide arbeiten zusammen. Sie können mit PSList eine Liste von Prozessen anzeigen und die Informationen dazu nutzen, diese mit PSKill zu beenden. Rufen Sie PSList ohne Optionen auf, zeigt das Tool bereits Informationen über die gestarteten Prozesse auf dem Computer an.

Was geht ab: Man kann sich mit PSList die geladenen Systemprozesse auflisten lassen.

Die Ausgabe enthält neben der Prozess-ID (PID) von links nach rechts die Prioritätsklasse, die Anzahl der Threads, die Anzahl der Handles, die Menge der verbrauchten CPU-Zeit und die Zeit, die der Prozess schon aktiv ist. Dieses Programm braucht nicht unter einem Administratorkonto zu laufen, sondern kann auch ohne diese Berechtigung alle Informationen anzeigen.

Neben dem Gesamtverbrauch an virtuellem Speicher informiert PSList auch über Verbrauchsspitzen. Die Option -d zeigt Details über die Threads an, die ein Prozess verwendet. Mit der Option -x ist es möglich, die Detailinformationen zum Prozess, zum Speicherverbrauch und zu den Threads gemeinsam auszugeben.

Die Option-t gibt eine Prozessstruktur aus. Dabei sind alle Prozesse zu sehen, die ein bestimmter Prozess startet. Verwenden Sie die Option -s, listet das Tool die Prozesse sortiert nach der verbrauchten CPU-Zeit auf. Sie können mit dem Tool auch Prozesse auf einem Remote-Computer anzeigen lassen. Die Syntax dazu lautet:

pslist \\<Computer>

Wollen Sie Informationen zu speziellen Prozessen erhalten, reicht es aus, wenn Sie einen Teil des Namens mit angeben, zum Beispiel

pslist svc

PSKill ist ein Befehlszeilenprogramm wie PSList und ermöglicht das Beenden von Prozessen - sowohl auf dem lokalen Computer als auch auf einem Rechner im Netzwerk. Die Syntax lautet:

pskill [- ] [-t] [\\<Computer> [-u <Benutzername>] [-p <Kennwort]] <Prozessname oder PID>

Die Option -t "killt" den spezifizierten Prozess und alle von ihm abhängigen Prozesse.

Systemdienste im Griff - PSService

Mit PSService können Sie Systemdienste lokal oder auf Computern im Netzwerk anzeigen, beenden und starten. Die Optionen des Programms sind:

psservice [\\<Computer> [-u <Benutzername>] [-p <Kennwort>]] <Befehl> <Option>

• query - Zeigt den Status eines Dienstes an.

• config - Zeigt die Einstellungen eines Dienstes an.

• setconfig - Setzt den Starttyp des Dienstes um.

• start - Startet einen Dienst.

• stop - Beendet einen Dienst.

• restart - Startet einen Dienst neu.

• pause - Hält einen Dienst an.

• cont - Führt einen Dienst weiter aus, nachdem er angehalten worden ist.

• depend - Zeigt die von diesem Dienst abhängigen Dienste an.

• security - Gibt die Sicherheitsinformationen für den Dienst aus.

• find - Unterstützt beim Suchen eines Dienstes.

Alternativ können Sie Dienste in der PowerShell mit start-service, stop-service, get-service und set-service starten und beenden. Die Befehlszeilen-Tools net start und net stop helfen ebenso bei der Verwaltung der Systemdienste. Am schnellsten rufen Sie die Verwaltungsoberfläche der Systemdienste in Windows durch Eingabe von services.msc im Suchfeld des Startmenüs auf. In der Befehlszeile sehen Sie die gestarteten Dienste über net start. Mit

net start >dienste.txt

werden alle gestarteten Dienste in die Datei dienste.txt gespeichert. Eine weitere Möglichkeit ist der Befehl sc query, der deutlich mehr Informationen liefert. Dienste lassen sich, neben der grafischen Oberfläche, in der Befehlszeile über

net stop <Dienstname>

stoppen und über

net start <Dienstname>

wieder starten, der Starttyp wird dadurch aber nicht geändert. Den Starttyp ändern Sie in der Diensteverwaltungskonsole in den Eigenschaften des Dienstes. (mje)