Interessiert daran, das PowerShell Get-Process-Cmdlet zu verwenden, um die laufenden Prozesse eines Systems anzuzeigen? Mit Get-Process
können Sie den Prozessbesitzer, die Prozess-ID oder sogar den Speicherort des Prozesses auf der Festplatte finden.
In diesem Artikel erfahren Sie, wie Sie das PowerShell-Cmdlet Get-Process
anhand von Beispielen aus der realen Welt verwenden können. Wenn es Ihnen Spaß macht, Prozesse zu bändigen, um sie unter Windows oder Linux zu kontrollieren, dann lesen Sie weiter!
Verwandt: So beenden Sie einen Prozess in Linux mit ps, pgrep, pkill und mehr!
Voraussetzungen
Bevor Sie weitermachen, sind hier die notwendigen Voraussetzungen, um den Beispielen in diesem Artikel zu folgen.
- Obwohl Windows PowerShell 5.1 für die meisten Beispiele ausreicht, ist PowerShell 7.1 und höher für die Unterstützung von Linux erforderlich.
Verwandt: Aufstieg auf PowerShell 7: Ein Leitfaden
- Dieser Artikel verwendet Windows 10 und Ubuntu 20.04 LTS, aber jedes Betriebssystem, auf dem PowerShell ausgeführt wird, funktioniert.
Bereit? Tauchen wir ein und verwalten einige Prozesse!
Anzeigen der laufenden Prozesse
Get-Process
verwaltet lokale Prozesse. In diesem ersten Beispiel verwenden Sie das PowerShell Get-Process c
mdlet. Dieser Befehl zeigt alle laufenden Prozesse an.
Get-Process
liefert eine Momentaufnahme der laufenden Prozessinformationen eines Systems. Zur Anzeige von Echtzeitprozessinformationen bietet Windows den Windows Task-Manager und Linux den Befehl top.
Um loszulegen, öffnen Sie Ihre PowerShell-Konsole und führen Sie Get-Process
aus. Beachten Sie, dass Get-Process
die laufenden Prozessinformationen zurückgibt, wie unten gezeigt. Das Ausgabeformat ist für die Betriebssysteme Windows und Linux identisch.

Get-Process
cmdlet on Windows to display local processes.Standardmäßig existieren die Befehlsaliasse
gps
oderps
fürGet-Process
. Da PowerShell 7 plattformübergreifend ist, kollidiert der Befehlps
mit einem eingebauten Linux-Befehl. Daher funktioniertps
nicht unter Linux, nur der Aliasgps
.
Die Bedeutung der Ausgabe von Get-Process
ist möglicherweise nicht sofort ersichtlich. Die Standard-Get-Process
-Eigenschaften werden unten näher beschrieben.
- NPM(K) – Die Menge an nicht ausgelagerter Speicher, die ein Prozess verwendet, wird in Kilobyte angezeigt, wie durch die Notation
(K)
angegeben. - PM(M) – Die Menge des paginierbaren Speichers, den ein Prozess verwendet, angezeigt in Megabytes, wie durch die Notation
(M)
angegeben. - WS(M) – Die Größe des Arbeitssets des Prozesses, angezeigt in Megabytes. Das Arbeitsset besteht aus den Speicherseiten, die vom Prozess kürzlich referenziert wurden.
- VM(M) – Die Menge des virtuellen Speichers, den der Prozess verwendet, angezeigt in Megabytes. Beinhaltet Speicher in den Paging-Dateien auf der Festplatte.
- CPU(S) – Die Menge an Prozessorzeit, die der Prozess für alle Prozesse verwendet hat, angezeigt in Sekunden.
- Id – Die Prozess-ID (PID) des Prozesses.
- SI – Sitzungsidentifikator des laufenden Prozesses. Sitzung
0
zeigt an, dass der Prozess für alle Benutzer verfügbar ist,1
zeigt an, dass der Prozess unter dem ersten angemeldeten Benutzer vorhanden ist, und so weiter. - ProcessName – Der Name des laufenden Prozesses.
Um eine Liste von Eigenschaftsaliasen anzuzeigen, die auf vollständige Eigenschaftsnamen abgebildet sind, verwenden Sie den Befehl
Get-Process | Get-Member -MemberType 'AliasProperty'
.
Unten ist ein weiteres großartiges Beispiel. Für jede Instanz des brave-Prozesses, den es findet, verwendet es die ID dieses Prozesses ($_.id
) und übergibt sie an Get-NetTCPConnection
. PowerShell verwendet dann Get-NetTCPConnection
, um Informationen über jede Netzwerkverbindung zu finden, die der brave-Prozess geöffnet hat.
Führen Sie den folgenden Code in Ihrer PowerShell-Sitzung aus, wenn der Brave-Browser ausgeführt wird.
Vielen Dank an Jay Adams von SystemFrontier!
Herzlichen Glückwunsch, Sie können jetzt alle laufenden Prozesse sowohl unter Windows als auch unter Linux mit Get-Process
anzeigen!
Suche nach bestimmten Prozesseigenschaften
Get-Process
gibt viele verschiedene Eigenschaften von laufenden Prozessen zurück, wie Sie bereits gesehen haben. Wie bei allen anderen PowerShell-Objekten können Sie selektiv Eigenschaften von Objekten auswählen.
Lassen Sie uns nun durch ein einfaches Beispiel gehen, wie Sie spezifische Eigenschaften für einen bestimmten Prozess abrufen können:
- Starten Sie Ihren Windows-Rechner.
2. Mit einer geöffneten PowerShell-Konsole führen Sie Get-Process
mit dem Parameter Name
aus, um nur alle laufenden Prozesse mit Calculator als Namen anzuzeigen. Sie werden die gleiche Ausgabe sehen, die Sie zuvor gesehen haben.
Get-Process
gibt viele Eigenschaften wie erwartet zurück. Vielleicht möchten Sie nur die CPU-Auslastung mit dem Wert unter der Spalte CPU(s)
finden. Umgeben Sie den Befehl Get-Process
mit Klammern und verweisen Sie auf die Eigenschaft CPU
, wie unten gezeigt. Sie werden feststellen, dass nur der Wert für die Eigenschaft CPU
zurückgegeben wird.
Beachten Sie, dass
Get-Process
einen Namen namensCPU(s)
zurückgibt und der obige Codeausschnitt den Namen nur alsCPU
verwendet hat. Manchmal zeigt PowerShell den tatsächlichen Eigenschaftsnamen nicht im Ausgabefenster an. Dieses Konzept wird mit einer PS1XML-Formatdatei durchgeführt.
Die CPU-Zeit wird als Summe der Sekunden über alle Kerne ausgedrückt. Um diese Zahl für den Menschen lesbarer zu machen, runden Sie sie auf die nächste Zehntelstelle mit einer Math
-Methode wie unten gezeigt.

Sie können den oben genannten Ansatz auch verwenden, um andere Eigenschaften wie
Id
zu finden, wenn Sie nur die ID eines Prozesses anzeigen möchten.
Lassen Sie die Rechner-Anwendung geöffnet. Sie werden diese Anwendung für die restlichen Beispiele verwenden.
Abrufen des Speicherverbrauchs des Prozesses
Das Beheben von langsamen Systemen kann eine Herausforderung sein, wobei oft beschränkter Speicher eine Ursache ist. Setzen Sie mit der Rechner-App fort, indem Sie den Rechner
-Prozess abrufen und nur die VM
-Eigenschaft anzeigen. Wie unten zu sehen ist, wird der verwendete Speicher in Megabyte (MB) angezeigt.

Calculator
process memory usage.Um das Speicherverbrauch zu verstehen, verwenden Sie die internen PowerShell-Konvertierungsfaktoren, um Megabytes (MB) in Gigabytes (GB) umzuwandeln. Im unten stehenden Beispiel werden Sie den Speicherverbrauch in GB umwandeln und dann die .NET Mathematikbibliothek Methode Round
verwenden, wie in der unten stehenden Abbildung zu sehen.
Die Verwendung der eingebauten PowerShell-Tools zur Konvertierung der Werte erleichtert das Verständnis der Ausgabe. Lesen Sie weiter, um zu erfahren, wie Sie die ID eines Prozesses finden können.

Weniger bekannte Eigenschaften aufdecken
Nicht alle Eigenschaften sind standardmäßig in Get-Process
enthalten oder werden angezeigt. Lesen Sie weiter, um mehr über die Eigenschaften Path
und UserName
zu erfahren und wie Sie sie verwenden können!
Herausfinden, wo sich die ausführbare Datei eines Prozesses befindet
Es gibt viele Orte auf einem System, an denen eine ausführbare Datei eines Prozesses gespeichert sein kann. Wenn ein Prozess gerade läuft, erleichtert Get-Process
das Auffinden des Dateisystempfads des Prozesses, obwohl Path
standardmäßig nicht angezeigt wird. Wie unten gezeigt, enthält die Path
-Eigenschaft den Dateisystempfad der ausführbaren Prozessdatei.

Get-Process
to display a process’s full file system path on Windows.Genau wie in Windows gibt auch in Linux Get-Process
den Dateisystempfad zurück. Im folgenden Beispiel läuft der Prozess gnome-calculator
mit dem Pfad, der in der Konsolenausgabe angezeigt wird.

Get-Process
to display a process’s full file system path on Linux.Geschickte böswillige Akteure können einen Prozess mit demselben oder einem ähnlichen Namen wie ein vertrauenswürdiger Prozess benennen. Daher hilft die Möglichkeit, den Dateisystempfad zu finden, in einem Sicherheitsvorfall-Antwortszenario (IR). Lesen Sie weiter, um herauszufinden, wie Sie den Prozessbesitzer finden können, da UserName
nicht im Standardausgabewert enthalten ist.
Den Prozessbesitzer finden
Um den Wert UserName
im Ausgabewert einzuschließen, müssen Sie den Parameter IncludeUserName
verwenden. Es ist wichtig, den Prozessbesitzer zu kennen, insbesondere um zu vermeiden, unwissentlich den Prozess eines anderen Benutzers zu beenden. Wie unten gezeigt, ist die Eigenschaft UserName
nun in der Prozessausgabe enthalten.

Calculator
process on Windows.Zum Schluss lesen Sie weiter, um mehr über die Verwendung von Get-Process
auf einem Remote-Computer zur Abfrage von Prozessinformationen zu erfahren!
Prozesse auf Remote-Computern finden
Obwohl in Windows PowerShell Get-Process
keine eigenen Remote-Fähigkeiten hat, können Sie immer PowerShell Remoting und Invoke-Command
nutzen, um es auf Remote-Computern auszuführen.
Verwandt: So richten Sie PSRemoting mit Windows und Linux ein
Aber wenn Sie Linux verwenden oder PowerShell 6 unter Windows ausführen, haben Sie jetzt einen ComputerName
-Parameter, den Sie verwenden können, um Prozesse auf Remote-Computern abzufragen.
Der
-ComputerName
-Parameter wurde in PowerShell 7.x entfernt, da das Cmdlet nicht direkt mit Remoting zusammenhängt. Um dasselbe zu erreichen, können Sie das Ganze in einInvoke-Command
einbetten, wie folgt:Invoke-Command -ComputerName "ComputerName" -ScriptBlock { Get-Process -ProcessName 'process' }
Wenn der obige Befehl gegen einen Remote-Computer ausgeführt wird, wird dasselbe Ergebnis angezeigt, als wenn der Get-Process
-Befehl lokal ausgeführt würde.
Nachstehend finden Sie ein Beispiel für das Remoting auf einen anderen Computer und das Abrufen von laufenden Prozessen:

Sie können mehrere Computer anvisieren, indem Sie sie mit einem Komma trennen, z. B.
Get-Process -ComputerName SRV1,SRV2.
Nächste Schritte
In diesem Artikel haben Sie gelernt, wie Sie das PowerShell Get-Process
-Cmdlet verwenden, um mit PowerShell auf lokalen und Remote-Computern sowohl unter Linux als auch unter Windows laufende Prozesse zu finden.
Und jetzt, was werden Sie mit diesem Wissen tun? Versuchen Sie, einen von Get-Process
abgerufenen Prozess an Stop-Process
auf einem lokalen oder Remote-Computer weiterzugeben, um ihn zu beenden!
Source:
https://adamtheautomator.com/powershell-get-process/