Mit der Windows PowerShell alle laufenden Processe auslesen und grafische darstellen – Einfache Befehlsketten mit der Pipe entwickeln!

Top 10 Processe mit dem höchsten Ressourcen-verbrauch per Windows PowerShell auflisten!

Die Windows PowerShell ist für Administratoren ein wunderbares Werkzeug. Da es sich dabei um eine objektorientierte Skriptsprache handelt, ist sie natürlich wesentlich mächtiger als die altbekannte Eingabeaufforderung (cmd). Die folgende Anleitung beschreibt, wie man ganz einfach mit der PowerShell sämtliche laufenden Processe erhält und sich diese auch in einer grafischen Oberfläche anzeigen lassen kann. Das zu verwendende Cmdlet heißt Get-Process. Für das Arbeiten mit der PowerShell ist generell die Windows PowerShell ISE zu empfehlen. Diese hat durchaus einige Vorteile, welche die normale Konsole nicht bietet. Wenn man jetzt das obige Cmdlet aufruft, erhält man sofort eine Liste mit sämtlichen Processen. Allerdings ist diese weder sortiert, noch grafisch aufbereitet, sondern jeher sehr unsortiert.

Get-Process

Jetzt kommt der große Vorteil der PowerShell ins Spiel. Mit Ihr lassen sich u.a. alle Processe sortieren. So z.B. nach dessen CPU. Dazu wird eine “Pipe” (|) verwendet. Im Prinzip wird damit nur die Ausgabe des ersten Befehls weiterverarbeitet. Das bedeutet, hier werden vom Betriebssystem erst mal alle Processe gelesen, anschließend werden diese sortiert nach der CPU Zeit und zu guter letzt in absteigender Reihenfolge aufgelistet. Somit ist natürlich sofort erkennbar, welche Processe aktuell die höchsten Anforderungen an die CPU stellen.

Get-Process | Sort-Object CPU -Descending

Solche Befehlsausgaben lassen anschließend beliebig erweitern. In der Regel wird dazu immer die Pipe verwendet. Im Artikel: Powershell Pipeline richtig verwenden – Befehle mit der Pipe in der Windows PowerShell weiterverarbeiten findet ihr eine ausführliche Erläuterung, wie man sich solche obigen Befehlsketten zusammenbaut. In diesem Beispiel bietet es sich an, wenn nur die top zehn Processe ausgegeben werden. Dazu wird obige Befehlskette einfach wie folgt erweitert.

Get-Process | Sort-Object CPU -Descending | Select-Object -First 10

Um jetzt, wie Eingangs im Artikel erwähnt, diese Ausgabe auch noch grafisch zu erhalten, gibt es ebenso ein vordefiniertes Cmdlet mit dem Namen Out-GridView. Auch hier wird die bereits vorhandene Befehlskette einfach wieder mit der Pipe erweitert.

Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 | Out-GridView
Mit der Windows PowerShell die Top 10 Processe mit dem höchsten CPU Verbrauch anzeigen lassen!

Deutlich ersichtlich ist bei der Windows PowerShell doch zu erkennen, wie einfach Befehle anhand der Pipe erweitert werden können, um genau das gewünschte Ergebnis zu erhalten. Gerade hier wird es sehr deutlich, dass die PowerShell einen Moderne Objektorientierte Skriptsprache ist, welche für die Administration heutzutage einen enormen Mehrwert bietet.