Wie man eine Liste der laufenden Prozesse in PowerShell erhält
-
Verwenden Sie das Cmdlet
Get-Process
, um eine Liste von laufenden Prozessen in PowerShell anzuzeigen - Fazit

Dieser Artikel beschäftigt sich mit der Nutzung von PowerShell zur Prozessüberwachung und hebt das Cmdlet Get-Process
hervor. Das Cmdlet Get-Process
, ein fester Bestandteil des Prozessmanagements, bietet einen umfassenden Überblick über laufende Prozesse auf einer Windows-Maschine und zeigt kritische Informationen wie Prozess-IDs, Namen, Speichernutzung und CPU-Verbrauch an.
Der Artikel entfaltet systematisch die Syntax und Parameter des Cmdlets und kommt sowohl allgemeinen als auch spezifischen Prozessanfragen entgegen.
Verwenden Sie das Cmdlet Get-Process
, um eine Liste von laufenden Prozessen in PowerShell anzuzeigen
Es gibt mehr als 200 Cmdlets in der PowerShell-Umgebung. Jedes Cmdlet ist für eine spezifische Funktion verantwortlich.
Das Get-Process
ist eines der häufig verwendeten Cmdlets, das dabei hilft, die Liste der laufenden Prozesse auf der Windows-Maschine abzurufen.
Dieses Cmdlet gibt nützliche Informationen zu jedem Prozess zurück, wie Prozess-ID, Name, Speichernutzung usw. Außerdem zeigt es einen Snapshot der auf dem System laufenden Prozesse.
Syntax:
Get-Process [[-ProcessName] string[]] [-NameOfTheComputer string[]]
[-FileVersionInfo] [-Module] [CommonParameters]
Get-Process -processID Int32[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]
Get-Process -ProcessInputObject Process[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]
Parameter:
ProcessName string[
]: Gibt ein Array von Prozessnamen an, die abgerufen werden sollen. Dieser Parameter akzeptiert Wildcard-Zeichen zur Mustererkennung. Wenn dieser Parameter weggelassen wird, ruftGet-Process
alle Prozesse ab.ProcessId Int32[]
: Gibt die Prozess-IDs der abzurufenden Prozesse an. Dieser Parameter ermöglicht es Ihnen, gezielt bestimmte Prozesse direkt anzusprechen.InputObject Process[]
: Gibt ein Array von Prozessobjekten an. Dieser Parameter erlaubt es Ihnen, Prozessobjekte anGet-Process
weiterzuleiten.NameOfTheComputer string[]
: Gibt die Namen der Computer an, auf denen der Befehl ausgeführt werden soll. Wenn dieser Parameter weggelassen wird, ruftGet-Process
Prozesse vom lokalen Computer ab.FileVersionInfo
: Fügt den Prozessobjekten Informationen zur Dateiversion hinzu. Dies ist nützlich, wenn Sie Details zur ausführbaren Datei des Prozesses benötigen, wie Version, Produktname usw.Module
: Beinhaltet die Module (DLLs und ausführbare Dateien), die von jedem Prozess geladen werden. Dies ist hilfreich für eine detailliertere Analyse, wie das Überprüfen, welche DLLs von einem Prozess geladen werden.[CommonParameters]
: Dies sind die Parameter, die von allen Cmdlets unterstützt werden, wie-Verbose
,-Debug
,-ErrorAction
,-ErrorVariable
,-OutVariable
,-OutBuffer
und-PipelineVariable
.
Die Parameter sind optional für das Cmdlet Get-Process
, und Sie können diese Parameter nach Ihren Anforderungen verwenden.
Alle laufenden Prozesse anzeigen
Wir können den Befehl Get-Process
direkt ohne Parameter verwenden. Er sollte alle zu diesem Zeitpunkt laufenden Prozesse anzeigen.
Außerdem kann das Alias gps
anstelle des Befehls Get-Process
verwendet werden.
Get-Process
gps
Ausgabe:
Bei der Ausführung von entweder Get-Process
oder gps
beginnt PowerShell eine systemweite Abfrage, um Informationen über alle aktiven Prozesse zu sammeln. Das Fehlen von Parametern in diesen Befehlen signalisiert PowerShell, keine Filter anzuwenden und Details für jeden Prozess abzurufen.
PowerShell sammelt dann ausführliche Daten über jeden laufenden Prozess. Diese Daten umfassen verschiedene Attribute, die den Zustand und die Eigenschaften dieser Prozesse beschreiben.
PowerShell formatiert sie zur Anzeige in einer Tabelle. Dieses tabellarische Format ist darauf ausgelegt, die Informationen klar und lesbar darzustellen.
Die Tabelle umfasst typischerweise mehrere wichtige Spalten:
Id
: Diese Spalte zeigt den Prozessidentifikator (PID
), ein einzigartiges numerisches Etikett, das jedem Prozess zugewiesen ist. DerPID
ist entscheidend für die eindeutige Identifizierung und Verwaltung spezifischer Prozesse.ProcessName
: Dies ist der Name der ausführbaren Datei, die den Prozess initiiert hat. Er hilft dabei, den Prozess leicht zu erkennen, insbesondere bei bekannten Anwendungen.CPU(s)
: Hier sehen wir die Menge an CPU-Zeit, die der Prozess verbraucht hat. Diese wird in Sekunden gemessen und ist entscheidend für die Beurteilung, welche Prozesse erhebliche CPU-Ressourcen verwenden, was potenziell die Systemleistung beeinträchtigen kann.PM(K)
: Das steht fürPaged Memory
in Kilobyte. Es repräsentiert die Größe des Speichers, den der Prozess verwendet, der auf die Festplatte paginiert werden kann. Diese Kennzahl ist wichtig zur Überwachung der Speichernutzung von Prozessen, was entscheidend für die Leistungsoptimierung und das Ressourcenmanagement ist.
Informationen zu einem einzelnen Prozess abrufen
Wenn wir PowerShell verwenden, um Informationen über einen bestimmten Prozess abzurufen, haben wir ein paar Syntaxoptionen. Sowohl Get-Process -Name processName
als auch Get-Process processName
sind gültig und erzielen dasselbe Ergebnis, unterscheiden sich jedoch geringfügig in ihrer Syntaxstruktur.
Get-Process -Name typora
ODER
Get-Process typora
Wenn wir entweder Get-Process -Name typora
oder Get-Process typora
ausführen, filtert PowerShell die laufenden Prozesse und gibt spezifische Informationen für den Prozess mit dem Namen typora
zurück. Dies ist insbesondere nützlich, wenn wir den genauen Namen des Prozesses kennen, an dem wir interessiert sind.
Intern durchsucht PowerShell die Liste aller Prozesse und vergleicht den Prozessnamen mit typora
. Wenn der Prozess läuft, werden seine Details angezeigt.
Ausgabe:
Informationen zu mehreren Prozessen abrufen
Wenn wir das Cmdlet Get-Process
in PowerShell verwenden, um Informationen für mehrere Prozesse abzurufen, wie im Befehl Get-Process NotePad, Outlook
, nutzen wir die Fähigkeit von PowerShell, mehrere Elemente gleichzeitig zu bearbeiten.
Get-Process NotePad, Outlook
Durch das Ausführen von Get-Process NotePad, Outlook
weisen wir PowerShell an, Details für mehrere Prozesse gleichzeitig abzurufen, in diesem Fall NotePad
und Outlook
. Dieser Befehl ist nützlich, wenn wir mehrere spezifische Prozesse überwachen müssen.
PowerShell führt eine ähnliche Operation wie der Befehl für einen einzelnen Prozess aus, jedoch für jeden angegebenen Prozessnamen und zeigt alle Übereinstimmungen an.
Ausgabe:
Außerdem können Sie Wildcards für den Processnamen verwenden.
Prozessobjekte mit den angegebenen Attributen abrufen
Wir können die Informationen zu Prozessobjekten für bestimmte Attribute anzeigen, wenn nötig. Lassen Sie uns nur die Process ID
für den NotePad
-Prozess abrufen.
(Get-Process NotePad).Id
Im Befehl (Get-Process NotePad).Id
erhalten wir zunächst das Prozessobjekt für NotePad
und greifen dann auf seine Id
-Eigenschaft zu. Diese Technik ist nützlich, wenn wir nur an spezifischen Informationen zu einem Prozess interessiert sind, wie seiner Process ID
.
Ausgabe:
Außerdem können wir das Attribut der CPU-Zeit für den NotePad
-Prozess abrufen, wie im Folgenden gezeigt.
(Get-Process NotePad).CPU
Ebenso ruft (Get-Process NotePad).CPU
die CPU-Nutzungsinformationen für den NotePad
-Prozess ab. Diese Befehle zeigen, wie wir spezifische Datenpunkte aus den Prozessobjekten extrahieren können.
Ausgabe:
Den Prozessbesitzer anzeigen
Die Standardausgabe des Befehls Get-Process
zeigt nicht das Attribut ProcessOwner
an. Dies kann jedoch eine wertvolle Information sein, wenn Sie einen bestimmten Prozess beenden möchten.
Wir können den Parameter -IncludeUserName
verwenden, um das Attribut ProcessOwner
in die Ausgabe aufzunehmen.
Get-Process -Name notepad -IncludeUserName
Der Befehl Get-Process -Name notepad -IncludeUserName
erweitert das Standardverhalten von Get-Process
, indem er den Benutzernamen des Prozessbesitzers in die Ausgabe aufnimmt. Der Parameter -IncludeUserName
ist entscheidend, wenn wir identifizieren möchten, welcher Benutzer einen bestimmten Prozess ausführt, was in Multi-User-Umgebungen oder zur Fehlersuche kritisch sein kann.
Dieser Befehl verbessert unsere Sichtbarkeit auf die Prozesse, insbesondere in Bezug auf deren Eigentümer.
Ausgabe:
Fazit
Diese umfassende Anleitung hat die Macht und Vielseitigkeit von PowerShell bei der Verwaltung und Überwachung von Systemprozessen beleuchtet. Wir sind durch die praktischen Anwendungen des Cmdlets Get-Process
gereist, angefangen bei der Auflistung aller laufenden Prozesse bis hin zur Identifizierung spezifischer Prozesse und der Vertiefung in die Extraktion bestimmter Prozessattribute.
Der Artikel zeigte auch die Geschicklichkeit von PowerShell im Umgang mit mehreren Prozessen gleichzeitig und die Einfachheit der Integration benutzerzentrierter Informationen wie der Prozessbesitzerschaft.
Diese Integration des Cmdlets Get-Process
unterstreicht die Robustheit und Anpassungsfähigkeit von PowerShell im Bereich des Prozessmanagements und bietet eine Vielzahl von Tools für Systemadministratoren, um Prozesse effektiv innerhalb einer Windows-Umgebung zu überwachen, zu analysieren und zu verwalten.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.