Get-Process
Ruft die Prozesse ab, die auf dem lokalen Computer ausgeführt werden.
Syntax
Name (Standardwert)
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
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 System.Diagnostics.Process-Objekt an dieses Cmdlet weiterleiten.
Standardmäßig gibt dieses Cmdlet ein Process-Objekt zurück, das detaillierte Informationen zum Prozess enthält und Methoden unterstützt, mit denen Sie es steuern können. Mit Parametern können Sie den Typ der von diesem Cmdlet zurückgegebenen Informationen ändern.
- Modul: Abrufen von Informationen für jedes modul, das in den Prozess geladen wurde.
- FileVersionInfo: Abrufen von Dateiversionsinformationen für das Hauptmodul des Prozesses.
Hinweis
Ein Modul ist eine ausführbare Datei oder eine DLL (Dynamic Link Library), die in einen Prozess geladen wurde. Ein Prozess verfügt über ein oder mehrere Module. Das Hauptmodul ist das Modul, das zum ersten Starten des Prozesses verwendet wird. Weitere Informationen finden Sie unter ProcessModule Class.
Beispiele
Beispiel 1: Abrufen einer Liste aller ausgeführten Prozesse auf dem lokalen Computer
Get-Process
Dieser Befehl ruft eine Liste aller ausgeführten Prozesse auf dem lokalen Computer ab. Eine Definition jeder Anzeigespalte finden Sie im Abschnitt "NOTIZEN ".
Um alle Eigenschaften eines Process-Objekts anzuzeigen, verwenden Sie Get-Process | Get-Member
. Standardmäßig zeigt PowerShell bestimmte Eigenschaftswerte mithilfe von Einheiten wie Kilobyte (K) und Megabyte (M) an. Die tatsächlichen Werte, wenn mit dem Memberzugriffsoperator (.
) zugegriffen wird, befinden sich in Byte.
Beispiel 2: Anzeigen detaillierter Informationen zu einem oder mehreren Prozessen
Get-Process winword, explorer | Format-List *
Diese Pipeline zeigt detaillierte Informationen zu den winword
Und explorer
Prozessen auf dem Computer an. Er verwendet den parameter Name, um die Prozesse anzugeben, aber der optionale Parametername wird weggelassen. Der Pipelineoperator (|
) pipes Process-Objekte an das Format-List
Cmdlet, das alle verfügbaren Eigenschaften (*
) und deren Werte für jedes Objekt anzeigt.
Sie können die Prozesse auch anhand ihrer Prozess-IDs identifizieren. Beispiel: Get-Process -Id 664, 2060
.
Beispiel 3: Abrufen aller Prozesse, deren Arbeitsset größer als eine festgelegte Größe ist
Get-Process | Where-Object { $_.WorkingSet -gt 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB
Das Get-Process
Cmdlet gibt die ausgeführten Prozesse zurück. Die Ausgabe wird an das Where-Object
Cmdlet weitergeleitet, das die Objekte mit einem WorkingSet-Wert größer als 20.971.520 Bytes auswählt.
Im ersten Beispiel wird ein Scriptblock verwendet, Where-Object
um die WorkingSet-Eigenschaft jedes Process-Objekts zu vergleichen. Im zweiten Beispiel verwendet das Where-Object
Cmdlet die vereinfachte Syntax, um die WorkingSet-Eigenschaft zu vergleichen. In diesem Fall -GT
handelt es sich um einen Parameter, nicht um einen Vergleichsoperator. Im zweiten Beispiel wird auch ein numerisches Literalsuffix als präzise Alternative zu 20971520
. In PowerShell MB
stellt ein Mebibyte(MiB)-Multiplizierer dar.
20MB
entspricht 20.971.520 Bytes.
Beispiel 4: Anzeigen von Prozessen auf dem Computer in Gruppen basierend auf Priorität
$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority
Diese Befehle zeigen Prozesse auf dem Computer basierend auf ihrer Prioritätsklasse in Gruppen an. Der erste Befehl ruft alle Prozesse auf dem Computer ab und speichert sie in der $processes
Variablen.
Mit dem zweiten Befehl werden die in der $processes
Variablen gespeicherten Process-Objekte an das Sort-Object
Cmdlet und dann an das Format-Table
Cmdlet weitergeleitet, das die Prozesse mithilfe der Prioritätsansicht formatiert.
Beispiel 5: Hinzufügen einer Eigenschaft zur standardmäßigen Ausgabeanzeige "Get-Process"
Get-Process -Name pwsh | Format-Table -Property @(
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(M)'; Expression = { [int] ($_.PM / 1MB) } }
@{ Name = 'WS(M)'; Expression = { [int] ($_.WS / 1MB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName StartTime
------ ----- ----- ------ -- -- ----------- ---------
84 46 79 18.297 3188 1 pwsh 4/14/2025 10:40:10 AM
66 30 90 4.328 4640 1 pwsh 4/13/2025 3:33:50 PM
66 30 90 4.516 9204 1 pwsh 4/14/2025 9:54:27 AM
In diesem Beispiel werden Prozesse vom lokalen Computer abgerufen und jedes Process-Objekt an das Format-Table
Cmdlet weitergeleitet.
Format-Table
Erstellt die Standardausgabeanzeige eines Process -Objekts mithilfe einer Mischung aus Eigenschaftsnamen und berechneten Eigenschaften neu. Die Anzeige enthält eine zusätzliche StartTime-Eigenschaft , die in der Standardanzeige nicht vorhanden ist.
Beispiel 6: Abrufen von Versionsinformationen für einen Prozess
Get-Process -Name pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
7.5.0 SHA: 99da… 7.5.0.500 C:\Program Files\PowerShell\7\pwsh.exe
Dieser Befehl verwendet den Parameter FileVersionInfo , um Dateiversionsinformationen für das Hauptmodul des pwsh
Prozesses abzurufen. Das Hauptmodul ist die Datei, die zum Starten des Prozesses verwendet wird, was in diesem Fall der Fall ist pwsh.exe
.
Um diesen Befehl mit Prozessen zu verwenden, die Sie nicht auf Windows Vista und höheren Versionen von Windows besitzen, müssen Sie PowerShell mit erhöhten Benutzerrechten (Als Administrator ausführen) ausführen.
Beispiel 7: Abrufen von Modulen, die mit dem angegebenen Prozess geladen wurden
Get-Process -Name SQL* -Module
Dieser Befehl verwendet den Parameter Module , um die Module abzurufen, die von allen Prozessen mit einem Namen geladen werden, beginnend mit SQL
.
Um diesen Befehl mit Prozessen zu verwenden, die Sie nicht auf Windows Vista und höheren Versionen von Windows besitzen, müssen Sie PowerShell mit erhöhten Benutzerrechten (Als Administrator ausführen) ausführen.
Beispiel 8: Suchen des Besitzers eines Prozesses
Get-Process -Name pwsh -IncludeUserName
WS(M) CPU(s) Id UserName ProcessName
----- ------ -- -------- -----------
46.53 21.70 3188 DOMAIN01\user01 pwsh
Get-CimInstance -ClassName Win32_Process -Filter "name='pwsh.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
Der erste Befehl zeigt, wie der Besitzer eines Prozesses abgerufen wird. Die Ausgabe zeigt, dass der Besitzer DOMAIN01\user01
ist.
Die zweite Pipeline zeigt eine andere Möglichkeit, um den Besitzer eines Prozesses zu Get-CimInstance
verwenden und Invoke-CimMethod
zu erhalten. Die Win32_Process Klasse mit einem Filter ruft Prozesse ab pwsh
, und die aufgerufene GetOwner()
Methode gibt Informationen zur Domäne und zum Benutzer des Prozesses zurück. Diese Methode ist nur unter Windows verfügbar und erfordert keine erhöhten Benutzerrechte.
Beispiel 9: Verwenden einer automatischen Variablen zum Identifizieren des Prozesses, der die aktuelle Sitzung hosten soll
Get-Process -Name 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 pwsh
Prozessen zu unterscheiden, die Sie möglicherweise steuern möchten.
Der erste Befehl ruft alle pwsh
ausgeführten Prozesse ab. Der zweite Befehl ruft den Prozess ab, der pwsh
die aktuelle Sitzung hosten soll.
Beispiel 10: Alle Prozesse abrufen, die einen Hauptfenstertitel haben, und sie in einer Tabelle anzeigen
Get-Process |
Where-Object -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
Diese Pipeline ruft alle Prozesse ab, die über einen Hauptfenstertitel verfügen, und zeigt sie in einer Tabelle mit der Prozess-ID und dem Namen an.
MainWindowTitle ist eine von vielen nützlichen Eigenschaften des Typs Diagnostics.Process-Objekt , der Get-Process
zurückgegeben wird. Verwenden Sie Get-Process | Get-Member
zum Anzeigen aller Eigenschaften .
Parameter
-FileVersionInfo
Gibt an, dass dieses Cmdlet die Dateiversionsinformationen für das Programm abruft, das in dem Prozess ausgeführt wird.
Unter Windows Vista und höheren Versionen von Windows müssen Sie PowerShell mit erhöhten Benutzerrechten (Als Administrator ausführen) ausführen, um diesen Parameter für Prozesse zu verwenden, die Sie nicht besitzen.
Die Verwendung dieses Parameters entspricht dem Zugriff auf die MainModule.FileVersionInfo-Eigenschaft jedes Process-Objekts . Wenn Sie diesen Parameter verwenden, Get-Process
wird ein FileVersionInfo-Objekt und kein Process-Objekt zurückgegeben. Sie können die ausgabe, die mit diesem Parameter erzeugt wird, nicht an ein Cmdlet weiterleiten, das ein Process-Objekt erwartet, z Stop-Process
. B. .
Parametereigenschaften
Typ: | SwitchParameter |
Standardwert: | False |
Unterstützt Platzhalter: | False |
Nicht anzeigen: | False |
Aliase: | FV, FVI |
Parametersätze
Name
Position: | Named |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
Id
Position: | Named |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
InputObject
Position: | Named |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
-Id
Gibt einen oder mehrere Prozesse anhand der Prozess-ID (PID) an. Sie können mehrere IDs angeben, die durch Kommas getrennt sind. Um die PID eines Prozesses abzurufen, verwenden Sie Get-Process
. Um die PID der aktuellen PowerShell-Sitzung abzurufen, verwenden Sie $PID
.
Parametereigenschaften
Typ: | Int32[] |
Standardwert: | None |
Unterstützt Platzhalter: | False |
Nicht anzeigen: | False |
Aliase: | PID |
Parametersätze
Id
Position: | Named |
Obligatorisch.: | True |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
Wert aus verbleibenden Argumenten: | False |
IdWithUserName
Position: | Named |
Obligatorisch.: | True |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
Wert aus verbleibenden Argumenten: | False |
-IncludeUserName
Gibt an, dass dieser Befehl jedem zurückgegebenen Process -Objekt eine UserName -Eigenschaft hinzufügt.
Parametereigenschaften
Typ: | SwitchParameter |
Standardwert: | None |
Unterstützt Platzhalter: | False |
Nicht anzeigen: | False |
Parametersätze
NameWithUserName
Position: | Named |
Obligatorisch.: | True |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
IdWithUserName
Position: | Named |
Obligatorisch.: | True |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
InputObjectWithUserName
Position: | Named |
Obligatorisch.: | True |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
-InputObject
Gibt ein oder mehrere Process-Objekte an. Verwenden Sie eine Variable, die die Objekte enthält, oder einen Befehl oder Ausdruck, der die Objekte abruft.
Parametereigenschaften
Typ: | Process[] |
Standardwert: | None |
Unterstützt Platzhalter: | False |
Nicht anzeigen: | False |
Parametersätze
InputObject
Position: | Named |
Obligatorisch.: | True |
Wert aus Pipeline: | True |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
InputObjectWithUserName
Position: | Named |
Obligatorisch.: | True |
Wert aus Pipeline: | True |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
-Module
Gibt an, dass dieses Cmdlet die Module abruft, die der Prozess geladen hat.
Unter Windows Vista und höheren Versionen von Windows müssen Sie PowerShell mit erhöhten Benutzerrechten (Als Administrator ausführen) ausführen, um diesen Parameter für Prozesse zu verwenden, die Sie nicht besitzen.
Die Verwendung dieses Parameters ist identisch mit dem Zugriff auf die Modules-Eigenschaft jedes Process-Objekts .
Wenn Sie diesen Parameter verwenden, Get-Process
wird ein ProcessModule-Objekt und kein Process-Objekt zurückgegeben. Sie können die ausgabe, die mit diesem Parameter erzeugt wird, nicht an ein Cmdlet weiterleiten, das ein Process-Objekt erwartet, z Stop-Process
. B. .
Wenn Sie die Parameter "Module" und " FileVersionInfo " zusammen verwenden, gibt dieses Cmdlet ein FileVersionInfo-Objekt mit Informationen zur Dateiversion aller Module zurück.
Parametereigenschaften
Typ: | SwitchParameter |
Standardwert: | False |
Unterstützt Platzhalter: | False |
Nicht anzeigen: | False |
Parametersätze
Name
Position: | Named |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
Id
Position: | Named |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
InputObject
Position: | Named |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
Wert aus verbleibenden Argumenten: | False |
-Name
Gibt einen oder mehrere Prozesse mit ihrem Prozessnamen an. Sie können mehrere Prozessnamen angeben, die durch Kommas getrennt sind, und Die Zeichen für die Verwendung von Wildcardzeichen verwenden. Die Verwendung des -Name
Parameters ist optional.
Parametereigenschaften
Typ: | String[] |
Standardwert: | None |
Unterstützt Platzhalter: | True |
Nicht anzeigen: | False |
Aliase: | ProcessName |
Parametersätze
Name
Position: | 0 |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
Wert aus verbleibenden Argumenten: | False |
NameWithUserName
Position: | 0 |
Obligatorisch.: | False |
Wert aus Pipeline: | False |
Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
Process
Sie können Process-Objekte an dieses Cmdlet weiterleiten.
Ausgaben
Process
Standardmäßig gibt dieses Cmdlet ein System.Diagnostics.Process-Objekt zurück.
FileVersionInfo
Wenn Sie den Parameter FileVersionInfo verwenden, gibt dieses Cmdlet ein System.Diagnostics.FileVersionInfo -Objekt zurück.
ProcessModule
Wenn Sie den Parameter Module verwenden, ohne den FileVersionInfo-Parameter , gibt dieses Cmdlet ein System.Diagnostics.ProcessModule-Objekt zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Get-Process
:
- Alle Plattformen:
gps
- Fenster:
ps
Auf Computern mit 64-Bit-Windows ruft die 64-Bit-Version von PowerShell das Hauptmodul und die 64-Bit-Prozessmodule ab. Die 32-Bit-Version von PowerShell erhält nur 32-Bit-Prozessmodule.
Warnung
Wenn Sie Get-Process
einen 64-Bit-Prozess in der 32-Bit-Version von PowerShell abrufen, sind $null
Eigenschaften wie Path
das MainModule
zurückgegebene Process-Objekt . Sie müssen entweder die 64-Bit-Version von PowerShell oder die Win32_Process Klasse verwenden.
Verwenden Sie das Cmdlet Invoke-Command
, um Prozessinformationen von einem Remotecomputer abzurufen. Weitere Informationen finden Sie unter Invoke-Command.
Unter Windows können Sie die Windows-Verwaltungsinstrumentation (WMI) Win32_Process Klasse in PowerShell als Alternative zu Get-Process
verwenden. Weitere Informationen finden Sie unter:
Die Standardanzeige eines Process-Objekts ist eine Tabellenansicht, die die folgenden Spalten enthält.
- NPM(K): Die Menge des nicht ausgelagerten Speichers, den der Prozess verwendet, in Kilobyte.
- PM(M): Die Menge des ausgelagerten Arbeitsspeichers, den der Prozess verwendet, in Megabyte.
- WS(M): Die Größe des Arbeitssatzes des Prozesses in Megabyte. Der Arbeitssatz besteht aus Speicherseiten, auf die zuvor vom Prozess verwiesen wurde.
- CPU(n): Die Prozessorzeit, die der Prozess auf allen Prozessoren verwendet hat, in Sekunden.
- ID: Die Prozess-ID (PID) des Prozesses.
- SI: Die Sitzungs-ID des Prozesses.
- ProcessName: Der Name des Prozesses.
Sie können die integrierten alternativen Ansichten für Prozessobjekte verwenden, die für Format-Table
Prozessobjekte verfügbar sind, z. B. StartTime und Priority. Sie können auch eigene Ansichten entwerfen.
Eine Beschreibung aller verfügbaren Process-Objektmember finden Sie unter "Process Properties" und "Process Methods".