Get-Process
Ruft die Prozesse ab, die auf dem lokalen Computer ausgeführt werden.
Syntax
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
-IncludeUserName
[<CommonParameters>]
Beschreibung
Das Get-Process
Cmdlet ruft die Prozesse auf einem lokalen Computer ab.
Ohne Parameter ruft dieses Cmdlet alle Prozesse auf dem lokalen Computer ab. Sie können einen bestimmten Prozess auch durch Prozessname oder Prozess-ID (PID) angeben oder ein Prozessobjekt über die Pipeline an dieses Cmdlet übergeben.
Standardmäßig gibt dieses Cmdlet ein Prozessobjekt zurück, das detaillierte Informationen zum Prozess enthält und Methoden unterstützt, mit denen Sie den Prozess starten und beenden können. Sie können auch die Parameter des Get-Process
Cmdlets verwenden, um Dateiversionsinformationen für das Programm abzurufen, das im Prozess ausgeführt wird, und um die Module abzurufen, die der Prozess geladen hat.
Beispiele
Beispiel 1: Abrufen einer Liste aller aktiven Prozesse auf dem lokalen Computer
Get-Process
Dieser Befehl ruft eine Liste aller aktiven Prozesse ab, die auf dem lokalen Computer ausgeführt werden. Eine Definition jeder Spalte finden Sie im Abschnitt "Notizen ".
Beispiel 2: Abrufen aller verfügbaren Daten zu einem oder mehreren Prozessen
Get-Process winword, explorer | Format-List *
Mit diesem Befehl werden alle verfügbaren Daten zum Winword- und zum Explorer-Prozess auf dem Computer abgerufen. Er verwendet den Parameter Name , um die Prozesse anzugeben, aber der optionale Parametername wird weggelassen. Der Pipelineoperator (|
) übergibt die Daten an das Format-List
Cmdlet, das alle verfügbaren Eigenschaften (*
) der Winword- und Explorer-Prozessobjekte anzeigt.
Sie können die Prozesse auch anhand ihrer Prozess-IDs angeben. Beispielsweise Get-Process -Id 664, 2060
.
Beispiel 3: Abrufen aller Prozesse mit einem Arbeitssatz größer als eine angegebene Größe
Get-Process | Where-Object {$_.WorkingSet -gt 20000000}
Mit diesem Befehl werden alle Prozesse mit einem Arbeitssatz abgerufen, dessen Größe 20 MB übersteigt. Es verwendet das Get-Process
Cmdlet, um alle ausgeführten Prozesse abzurufen. Der Pipelineoperator (|
) übergibt die Prozessobjekte an das Where-Object
Cmdlet, das nur das Objekt mit einem Wert von mehr als 20.000.000 Byte für die WorkingSet-Eigenschaft auswählt.
WorkingSet ist eine von vielen Eigenschaften von Prozessobjekten. Geben Sie ein, Get-Process | Get-Member
um alle Eigenschaften anzuzeigen. Standardmäßig werden die Werte aller Mengeneigenschaften in Bytes angegeben, auch wenn sie in der Standardanzeige in Kilobytes und Megabytes aufgeführt werden.
Beispiel 4: Auflisten von Prozessen auf dem Computer in Gruppen basierend auf Priorität
$A = Get-Process
$A | Get-Process | Format-Table -View priority
Diese Befehle führen die Prozesse auf dem Computer in Gruppen auf Grundlage ihrer Prioritätsklasse auf. Der erste Befehl ruft alle Prozesse auf dem Computer ab und speichert sie dann in der $A
Variablen.
Der zweite Befehl weist das in der $A
Variablen gespeicherte Process-Objekt an das Get-Process
Cmdlet und dann an das Format-Table
Cmdlet weiter, das die Prozesse mithilfe der Prioritätsansicht formatiert.
Die Prioritätsansicht und andere Ansichten werden in den PS1XML-Formatdateien im PowerShell-Startverzeichnis ($pshome
) definiert.
Beispiel 5: Hinzufügen einer Eigenschaft zur standardmäßigen Get-Process-Ausgabeanzeige
Get-Process pwsh | Format-Table `
@{Label = "NPM(K)"; Expression = {[int]($_.NPM / 1024)}},
@{Label = "PM(K)"; Expression = {[int]($_.PM / 1024)}},
@{Label = "WS(K)"; Expression = {[int]($_.WS / 1024)}},
@{Label = "VM(M)"; Expression = {[int]($_.VM / 1MB)}},
@{Label = "CPU(s)"; Expression = {if ($_.CPU) {$_.CPU.ToString("N")}}},
Id, ProcessName, StartTime -AutoSize
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName StartTime
------ ----- ----- ----- ------ -- ----------- ---------
143 239540 259384 2366162 22.73 12720 pwsh 12/5/2022 3:21:51 PM
114 61776 104588 2366127 11.45 18336 pwsh 12/5/2022 7:30:53 AM
156 77924 82060 2366185 10.47 18812 pwsh 12/5/2022 7:30:52 AM
85 48216 115192 2366074 1.14 24428 pwsh 12/8/2022 9:14:15 AM
In diesem Beispiel werden Prozesse vom lokalen Computer abgerufen. Die abgerufenen Prozesse werden an den Format-Table
Befehl weitergeleitet, der die StartTime-Eigenschaft zur Standardausgabeanzeige Get-Process
hinzufügt.
Beispiel 6: Abrufen von Versionsinformationen für einen Prozess
Get-Process pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.2 6.1.2 C:\Program Files\PowerShell\6\pwsh.exe
Dieser Befehl verwendet den Parameter FileVersionInfo , um die Versionsinformationen für die pwsh.exe
Datei abzurufen, die das Hauptmodul für den PowerShell-Prozess ist.
Um diesen Befehl mit Prozessen auszuführen, die Sie nicht unter Windows Vista und höheren Versionen von Windows besitzen, müssen Sie PowerShell mit der Option "Als Administrator ausführen" öffnen.
Beispiel 7: Abrufen von Modulen, die mit dem angegebenen Prozess geladen wurden
Get-Process SQL* -Module
Dieser Befehl verwendet den Parameter "Module ", um die Module abzurufen, die vom Prozess geladen wurden.
Dieser Befehl ruft die Module für die Prozesse mit Namen ab, die mit SQL
.
Um diesen Befehl unter Windows Vista und höheren Versionen von Windows mit Prozessen auszuführen, die Sie nicht besitzen, müssen Sie PowerShell mit der Option "Als Administrator ausführen" starten.
Beispiel 8: Suchen des Besitzers eines Prozesses
Get-Process pwsh -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 pwsh
Dieser Befehl zeigt, wie der Besitzer eines Prozesses ermittelt wird.
Unter Windows erfordert der Parameter IncludeUserName erhöhte Benutzerrechte (Als Administrator ausführen).
Die Ausgabe zeigt an, dass der Besitzer ist Domain01\user01
.
Beispiel 9: Verwenden einer automatischen Variablen zum Identifizieren des Prozesses, der die aktuelle Sitzung hosten soll
Get-Process pwsh
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 105.95 4.33 1192 10 pwsh
79 83.81 117.61 2.16 10580 10 pwsh
Get-Process -Id $PID
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 77.53 4.39 1192 10 pwsh
Diese Befehle zeigen, wie Sie die $PID
automatische Variable verwenden, um den Prozess zu identifizieren, der die aktuelle PowerShell-Sitzung hostet. Sie können diese Methode verwenden, um den Hostprozess von anderen PowerShell-Prozessen zu unterscheiden, die Sie möglicherweise beenden oder schließen möchten.
Der erste Befehl ruft alle PowerShell-Prozesse in der aktuellen Sitzung ab.
Der zweite Befehl ruft den PowerShell-Prozess ab, der die aktuelle Sitzung hosten soll.
Beispiel 10: Abrufen aller Prozesse mit einem Hauptfenstertitel und Anzeigen in einer Tabelle
Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize
Mit diesem Befehl werden alle Prozesse mit einem Hauptfenstertitel abgerufen und in einer Tabelle mit der Prozess-ID und dem Prozessnamen angezeigt.
Die mainWindowTitle-Eigenschaft ist nur eine von vielen nützlichen Eigenschaften des Process-Objekts, das Get-Process
zurückgegeben wird. Um alle Eigenschaften anzuzeigen, führen Sie die Ergebnisse eines Get-Process
Befehls an das Get-Member
Cmdlet Get-Process | Get-Member
weiter.
Parameter
-FileVersionInfo
Gibt an, dass dieses Cmdlet die Dateiversionsinformationen für das Programm abruft, das im Prozess ausgeführt wird.
Unter Windows Vista und höheren Versionen von Windows müssen Sie PowerShell mit der Option "Als Administrator ausführen" öffnen, um diesen Parameter für Prozesse zu verwenden, die Sie nicht besitzen.
Die Verwendung dieses Parameters entspricht dem Abrufen der MainModule.FileVersionInfo-Eigenschaft jedes Prozessobjekts. Wenn Sie diesen Parameter verwenden, Get-Process
wird ein FileVersionInfo-Objekt System.Diagnostics.FileVersionInfo und kein Prozessobjekt zurückgegeben. Sie können also die Ausgabe des Befehls nicht an ein Cmdlet weiterleiten, das ein Prozessobjekt erwartet, z Stop-Process
. B. .
Typ: | SwitchParameter |
Aliase: | FV, FVI |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Id
Gibt einen oder mehrere Prozesse anhand der Prozess-ID (PID) an. Wenn Sie mehrere IDs angeben, trennen Sie diese durch Kommas. Um die PID eines Prozesses zu finden, geben Sie folgendes ein Get-Process
.
Typ: | Int32[] |
Aliase: | PID |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-IncludeUserName
Gibt an, dass der UserName-Wert des Process -Objekts mit Ergebnissen des Befehls zurückgegeben wird.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt Prozessobjekte an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.
Typ: | Process[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Module
Gibt an, dass dieses Cmdlet die Module abruft, die von den Prozessen geladen wurden.
Unter Windows Vista und höheren Versionen von Windows müssen Sie PowerShell mit der Option "Als Administrator ausführen" öffnen, um diesen Parameter für Prozesse zu verwenden, die Sie nicht besitzen.
Dieser Parameter entspricht dem Abrufen der Modules-Eigenschaft jedes Prozessobjekts. Wenn Sie diesen Parameter verwenden, gibt dieses Cmdlet ein ProcessModule-Objekt System.Diagnostics.ProcessModule zurück, kein Prozessobjekt. Sie können also die Ausgabe des Befehls nicht an ein Cmdlet weiterleiten, das ein Prozessobjekt erwartet, z Stop-Process
. B. .
Wenn Sie sowohl die Parameter "Module" als auch "FileVersionInfo" im selben Befehl verwenden, gibt dieses Cmdlet ein FileVersionInfo-Objekt mit Informationen zur Dateiversion aller Module zurück.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt einen oder mehrere Prozesse mit ihrem Prozessnamen an. Sie können mehrere Prozessnamen eingeben (getrennt durch Kommas) und Platzhalterzeichen verwenden. Der Parametername (Name
) ist optional.
Typ: | String[] |
Aliase: | ProcessName |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | True |
Eingaben
Sie können ein Prozessobjekt an dieses Cmdlet weiterleiten.
Ausgaben
Standardmäßig gibt dieses Cmdlet ein System.Diagnostics.Process-Objekt zurück.
Wenn Sie den Parameter FileVersionInfo verwenden, gibt dieses Cmdlet ein FileVersionInfo-Objekt zurück.
Wenn Sie den Parameter Module verwenden, ohne den Parameter FileVersionInfo , gibt dieses Cmdlet ein ProcessModule-Objekt zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Get-Process
:
- Alle Plattformen:
gps
- Windows:
ps
Auf Computern, auf denen eine 64-Bit-Version von Windows ausgeführt wird, erhält die 64-Bit-Version von PowerShell nur 64-Bit-Prozessmodule, und die 32-Bit-Version von PowerShell erhält nur 32-Bit-Prozessmodule.
Verwenden Sie das Invoke-Command
Cmdlet, um Prozessinformationen von einem Remotecomputer abzurufen. Weitere Informationen finden Sie unter Invoke-Command.
Sie können die Eigenschaften und Methoden der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) Win32_Process-Objekts in PowerShell verwenden. Weitere Informationen finden Sie unter Win32_Process.
Die Standardanzeige eines Prozesses ist eine Tabelle mit den folgenden Spalten: Eine Beschreibung aller Eigenschaften von Prozessobjekten finden Sie unter Prozesseigenschaften.
- 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 seitenfähigen Speichers, den der Prozess verwendet, in Kilobyte.
- WS(K): Die Größe des Arbeitssatzes des Prozesses in Kilobyte. Der Arbeitssatz besteht aus Speicherseiten, auf die zuvor vom Prozess verwiesen wurde.
- VM(M): Die Menge des virtuellen Speichers, den der Prozess verwendet, in Megabyte. Der virtuelle Speicher umfasst den Speicher der Auslagerungsdateien auf dem Datenträger.
- CPU(s): Die Prozessorzeit, die der Prozess auf allen Prozessoren verwendet hat, in Sekunden.
- ID: Die Prozess-ID (PID) des Prozesses.
- ProcessName: Der Name des Prozesses. Erläuterungen zu den Prozesskonzepten finden Sie im Glossar des Hilfe- und Supportcenters sowie in der Hilfe des Task-Managers.
Sie können auch die integrierten alternativen Ansichten der verfügbaren Format-Table
Prozesse verwenden, z . B. StartTime und Priority, und Sie können Eigene Ansichten entwerfen.