Der PowerShell Befehl „Get-Process“ gibt eine Liste der laufenden Prozesse auf dem Windows Computer zurück. Der PowerShell Befehl verfügt über eine Reihe von Parametern und kann sehr nützlich sein bei der Auflistung der aktiven Windows Prozesse. In diesem Beitrag behandeln wir die wichtigsten Funktionen des Befehls und was bei der Verwendung beachtet werden muss.

Get-Process Syntax

Die Syntax des „Get-Process“ Befehls incl. der Parameter lautet wie folgt.

Get-Process [-Name] <string[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [-Module]
[-Id] <int[]> [-IncludeUserName] [-InputObject <Process[]>] [-Credential <PSCredential>] 
[-FileVersion] [-FileVersion] [-IncludeWindowStation] [-PassThru] 
[-PriorityClass <ProcessPriorityClass[]>] [-Verb] <string> [-WhatIf] 
[-Confirm] [<CommonParameters>]

Get-Process Parameter

Folgende Parameter sind beim „Get-Prozess“ verfügbar.

Name: Gibt eine oder mehrere Prozessnamen an, die in der Ausgabe enthalten sein sollen.
ComputerName: Gibt einen oder mehrere Remote-Computer an, von denen die Prozessinformationen abgerufen werden sollen.
FileVersionInfo: Gibt die Dateiversion der ausführbaren Datei des Prozesses zurück.
Module: Gibt Informationen über die Module zurück, die von dem Prozess geladen wurden.
Id: Gibt eine oder mehrere Prozess-IDs an, die in der Ausgabe enthalten sein sollen.
IncludeUserName: Gibt den Benutzernamen zurück, unter dem der Prozess ausgeführt wird.
InputObject: Gibt ein oder mehrere Prozessobjekte an, von denen die Informationen abgerufen werden sollen.
Credential: Gibt die Anmeldeinformationen an, die zur Verbindung mit einem Remote-Computer verwendet werden sollen.
FileVersion: Gibt die Dateiversion der ausführbaren Datei des Prozesses zurück.
IncludeWindowStation: Gibt die Window-Station des Prozesses zurück.
PassThru: Gibt das Ergebnis als Objekt zurück.
PriorityClass: Gibt die Prioritätsklasse der Prozesse an.
Verb: Gibt das auszuführende Verb für das Prozessfenster an.
WhatIf: Zeigt an, was passieren würde, wenn der Befehl ausgeführt wird.
Confirm: Bestätigt, dass Sie den Befehl ausführen möchten.

Get-Process Beispiele

Um die Funktionsweise von dem PowerShell Befehl besser zu verstehen, haben wir hier nachfolgend einige Get-Process Beispiele aufgeführt incl. einer kurzen Erklärung des Befehls.

Folgender Befehl gibt eine Liste aller Prozesse auf dem lokalen Computer aus:

Get-Process

Die Ausgabe der Windows Prozesse kann dann wie folgt aussehen.

get-process Auflistung der Windows Prozesse

Hier nachfolgend noch eine Erklärung, was die einzelnen Spalte bzw. Spaltenüberschriften von Get-Prozess bedeuten.

  • Handles: Die Anzahl der Handles, die der Prozess geöffnet hat.
  • NPM(K): Die Menge des nicht ausgelagerten Speichers, den der Prozess verwendet, in Kilobyte.
  • PM(K): Die Menge des auslagerbaren Speichers, den der Prozess verwendet, in Kilobyte.
  • WS(K): Die Größe der Arbeitsmenge des Prozesses in Kilobyte. Die Arbeitsmenge besteht aus den Speicherseiten, auf die der Prozess zuletzt Bezug genommen hat.
  • CPU(s): Die Zeit, die der Prozess auf allen Prozessoren verbraucht hat, in Sekunden.
  • ID: Die Prozess-ID (PID) des Prozesses.
  • ProcessName: Der Name des Prozesses.

Prozessliste einer bestimmten Anwendung

Mit dem folgenden Befehl können Sie die Liste der Prozesse eine einzelnen Anwendung auflisten, in unserem Beispiel des Windows Explorers.

Get-Process -Name explorer

Liste aller Prozesse auf dem Remote-Computer „WINDOWSFAQ-SRV“ aus

Folgender Befehl gibt die Liste der Prozesse vom Computer „Windowsfaq-SRV“ aus.

Get-Process -ComputerName SERVER01

Prozessliste mit mehr Informationen

Gib eine Liste aller Prozesse auf dem lokalen Computer aus und gib die Prozess-ID, den Prozessnamen, die Auslastung des Arbeitsspeichers, die Priorität und die Laufzeit aus.

Get-Process | Format-Table Id, Name, WorkingSet, Priority, TotalProcessorTime -AutoSize

Liste aller Prozesse mit Filter

Folgender Befehl gibt eine Liste aller Prozesse auf dem lokalen Computer aus und filtere nach Prozessen, die mehr als 100 MB Arbeitsspeicher verwenden.

Get-Process | Where-Object {$_.WorkingSet -gt 100MB}

Mit Get-Process einen Prozess beenden

Mit dem folgenden Befehl wird ein Prozess beendet, in diesem Fall die „Notepad“ App.

Get-Process -Name notepad | Stop-Process

Abfragen, ob ein Prozess oder Anwendung läuft oder nicht

Mit dem folgenden Codeschnipsel könnt Ihr abfragen, ob eine Anwendung läuft oder nicht. In unserem Beispiel fragen wir erneut nach, ob die Notepad App gestartet ist oder nicht.

if (Get-Process -Name "notepad" -ErrorAction SilentlyContinue) { Write-Host "Notepad 
läuft." } else { Write-Host "Notepad läuft nicht." }

Wenn Notepad ausgeführt wird, wird „Notepad läuft“ angezeigt, andernfalls wird „Notepad läuft nicht“ angezeigt. Dies sieht dann in einer PowerShell Konsole wie folgt aus.

Mit Get-Prozess feststellen ob ein Prozess läuft oder nicht

Startet eine Anwendung, wenn sie nicht ausgeführt wird

Mit folgendem PowerShell Befehl kann geprüft werden, ob eine Anwendung aktiv läuft. Sollte sie nicht gestartet sein, so wird die Anwendung automatisch durch den Befehl gestartet. Hier nachfolgend wieder mit der Notepad App als Beispiel.

if (-not (Get-Process -Name "notepad" -ErrorAction SilentlyContinue)) { Start-Process "notepad" }

Überwachen der CPU-Auslastung aller Prozesse mit Get-Prozess

Dieses Beispiel gibt die Prozesse mit der höchsten CPU-Auslastung in absteigender Reihenfolge aus und speichert die Ergebnisse in einer CSV-Datei im Verzeichnis „C:\Temp“ und mit dem DateinamenCPU-Usage.csv„.

Get-Process | Sort-Object CPU -Descending | Select-Object ProcessName, CPU | 
Export-Csv -Path "C:\temp\CPU-Usage.csv" -NoTypeInformation

Gibt es einen vergleichbaren DOS Befehl zu „Get-Process“?

Es gibt keinen direkten DOS-Befehl, der mit dem PowerShell-Befehl „Get-Process“ vergleichbar ist, da die PowerShell eine leistungsfähige Skriptsprache ist, die auf .NET-Framework basiert und speziell für die Verwaltung von Windows-basierten Systemen entwickelt wurde.

DOS hingegen ist ein älteres Betriebssystem, das nur über eine begrenzte Anzahl von Befehlen verfügt und in der Regel nur einfache Verwaltungsaufgaben wie das Ausführen von Batch-Dateien oder das Anzeigen von Dateien ermöglicht.

Wenn Sie jedoch einen Befehl benötigen, der ähnliche Informationen wie „Get-Process“ bereitstellt, können Sie den Befehl „tasklist“ in der Eingabeaufforderung von Windows verwenden. Dieser Befehl zeigt eine Liste der laufenden Prozesse an, ähnlich wie „Get-Process“ in PowerShell.

tasklist

Dieser Befehl zeigt eine Liste der laufenden Prozesse mit Details wie Prozess-ID, Speicherauslastung, Benutzername usw. an.

Fazit

Mit dem PowerShell „Get-Process“ Befehl steht dem Anwender ein sehr leistungsfähiges Tool zur Abfrage und auch Kontrolle der Windows Prozesse zur Verfügung.

– PowerShell New-Item
– PowerShell Get-Content
– PowerShell Parameter: Ein umfassender Leitfaden