Freigeben über


Get-Process

Ruft die Prozesse ab, die auf dem lokalen Computer ausgeführt werden.

Syntax

Name (Standard)

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 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 cmdlets Get-Process 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 zu winword- und Explorer-Prozessen 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 cmdlet Format-List, wodurch alle verfügbaren Eigenschaften (*) der Winword- und Explorer-Prozessobjekte angezeigt werden.

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 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 Cmdlet Where-Object, das nur das Objekt mit einem Wert größer als 20.000.000 Byte für die WorkingSet--Eigenschaft auswählt.

WorkingSet ist eine von vielen Eigenschaften von Prozessobjekten. Geben Sie Get-Process | Get-Memberein, um alle Eigenschaften anzuzeigen. Standardmäßig befinden sich die Werte aller Mengeneigenschaften in Byte, obwohl die Standardanzeige sie in Kilobyte und Megabyte auflistet.

Beispiel 4: Auflisten von Prozessen auf dem Computer in Gruppen basierend auf Priorität

$A = Get-Process
$A | Get-Process | Format-Table -View priority

Mit diesen Befehlen werden die Prozesse auf dem Computer basierend auf ihrer Prioritätsklasse in Gruppen aufgelistet. Der erste Befehl ruft alle Prozesse auf dem Computer ab und speichert sie dann in der variablen $A.

Der zweite Befehl leitet das in der -Variable gespeicherte $A-Objekt an das Get-Process-Cmdlet und dann an das Format-Table-Cmdlet weiter, das die Prozesse mit Hilfe der Ansicht Priorität aufbereitet.

Die Ansicht Priorität und andere Ansichten sind in den PS1XML-Formatdateien im PowerShell-Stammverzeichnis ($pshome) definiert.

Beispiel 5: Hinzufügen einer Eigenschaft zum Standardbildschirm der Get-Process-Ausgabe

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 über die Pipeline an den Format-Table Befehl weitergeleitet, der die Eigenschaft StartTime zum Standardbildschirm 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 ab, deren Namen mit SQL beginnen.

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 Sie den Besitzer eines Prozesses finden. Unter Windows erfordert der IncludeUserName Parameter erhöhte Benutzerrechte (Als Administrator ausführen). Die Ausgabe zeigt, dass der Besitzer Domain01\user01 ist.

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: Alle Prozesse abrufen, die einen Hauptfenstertitel haben, und sie in einer Tabelle anzeigen

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

Dieser Befehl ruft alle Prozesse mit einem Hauptfenstertitel ab und zeigt sie in einer Tabelle mit der Prozess-ID und dem Prozessnamen an.

Die Eigenschaft mainWindowTitle ist nur eine von vielen nützlichen Eigenschaften des Process-Objekts, das Get-Processzurückgibt. Um alle Eigenschaften anzuzeigen, führen Sie die Ergebnisse eines Get-Process Befehls an das Get-Member Cmdlet Get-Process | Get-Memberweiter.

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 der Option Als Administrator ausführen öffnen, um diesen Parameter für Prozesse zu verwenden, die Sie nicht besitzen.

Die Verwendung dieses Parameters ist gleichbedeutend mit dem Abrufen der MainModule.FileVersionInfo-Eigenschaft eines jeden Prozessobjekts. Wenn Sie diesen Parameter verwenden, gibt Get-Process ein FileVersionInfo Objekt System.Diagnostics.FileVersionInfozurück, kein Prozessobjekt. Sie können also die Ausgabe des Befehls nicht an ein Cmdlet weiterleiten, das ein Prozessobjekt erwartet, z. B. Stop-Process.

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. Um mehrere IDs anzugeben, verwenden Sie Kommas, um die IDs zu trennen. Geben Sie Get-Processein, um die PID eines Prozesses zu finden.

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 der UserName-Wert des Process -Objekts mit Ergebnissen des Befehls zurückgegeben wird.

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 Prozessobjekte an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte ermittelt.

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 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 ist gleichbedeutend mit dem Abrufen der Eigenschaft Modules jedes Prozessobjekts. Wenn Sie diesen Parameter verwenden, gibt dieses Cmdlet ein ProcessModule-objektSystem.Diagnostics.ProcessModulezurück, nicht ein Prozessobjekt. Sie können also die Ausgabe des Befehls nicht an ein Cmdlet weiterleiten, das ein Prozessobjekt erwartet, z. B. Stop-Process.

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.

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 (durch Kommas getrennt) eingeben und Wildcardzeichen verwenden. Der Parametername (Name) 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 ein Prozessobjekt 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 FileVersionInfo--Objekt zurück.

ProcessModule

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
  • Fenster:
    • 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 Cmdlet Invoke-Command, 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 Objekt in PowerShell verwenden. Informationen finden Sie unter Win32_Process.

Die Standardanzeige eines Prozesses ist eine Tabelle, die die folgenden Spalten enthält. 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 auslagerbaren Speichers, den der Prozess verwendet, in Kilobyte.
  • WS(K): Die Größe des Arbeitsspeichers des Prozesses, in Kilobytes. Der Arbeitssatz besteht aus Speicherseiten, auf die zuvor vom Prozess verwiesen wurde.
  • VM(M): Die Menge des virtuellen Arbeitsspeichers, den der Prozess verwendet, in Megabyte. Der virtuelle Speicher umfasst den Speicher der Auslagerungsdateien auf dem Datenträger.
  • CPU(n): 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 Konzepten im Zusammenhang mit Prozessen finden Sie im Glossar im Hilfe- und Supportcenter und in der Hilfe für Task Manager.

Sie können auch die integrierten alternativen Ansichten der Prozesse verwenden, die mit Format-Tableverfügbar sind, z. B. StartTime - und Priority. Außerdem können Sie eigene Ansichten entwerfen.