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.
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.
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 Dateinamen „CPU-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
Neueste Kommentare