Get-Process
Ruft die Prozesse ab, die auf dem lokalen Computer oder einem Remotecomputer ausgeführt werden.
Syntax
Name (Standard)
Get-Process
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
[-IncludeUserName]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
[-IncludeUserName]
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
[-IncludeUserName]
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Beschreibung
Das Cmdlet Get-Process ruft die Prozesse auf einem lokalen oder Remotecomputer 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 Format-List Cmdlet, das alle verfügbaren Eigenschaften * der Winword- und Explorer-Prozessobjekte 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 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 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 powershell -ComputerName S1, localhost | 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, MachineName, ProcessName -AutoSize
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName
------ ----- ----- ----- ------ -- ----------- -----------
6 23500 31340 142 1.70 1980 S1 powershell
6 23500 31348 142 2.75 4016 S1 powershell
27 54572 54520 576 5.52 4428 localhost powershell
In diesem Beispiel werden Prozesse vom lokalen Computer und von einem Remotecomputer (S1) abgerufen.
Die abgerufenen Prozesse werden an den Befehl weitergeleitet, der Format-Table der Standardausgabeanzeige die Get-Process hinzufügt.
Beispiel 6: Abrufen von Versionsinformationen für einen Prozess
Get-Process powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Dieser Befehl verwendet den FileVersionInfo-Parameter , um die Versionsinformationen für die powershell.exe Datei abzurufen, die das Hauptmodul für den PowerShell-Prozess ist.
Um diesen Befehl mit Prozessen auszuführen, die Sie unter Windows Vista und höheren Versionen von Windows nicht 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. Mit diesem Befehl werden die Module für die Prozesse abgerufen, deren Namen mit SQL beginnen.
Wenn Sie diesen Befehl unter Windows Vista und höheren Versionen von Windows mit Prozessen ausführen möchten, die Sie nicht besitzen, müssen Sie PowerShell mit der Option Als Administrator ausführen starten.
Beispiel 8: Suchen des Besitzers eines Prozesses
PS C:\> Get-Process powershell -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 powershell
$p = Get-WmiObject Win32_Process -Filter "name='powershell.exe'"
$p.GetOwner()
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Domain : DOMAIN01
ReturnValue : 0
User : user01
Der erste Befehl zeigt, wie der Besitzer eines Prozesses gefunden wird. Für den Parameter IncludeUserName sind erhöhte Benutzerrechte erforderlich (Als Administrator ausführen). Die Ausgabe zeigt, dass der Besitzer Domain01\user01 ist.
Der zweite und dritte Befehl sind eine weitere Möglichkeit, den Besitzer eines Prozesses zu finden.
Der zweite Befehl verwendet Get-WmiObject, um den PowerShell-Prozess abzurufen.
Es wird in der Variablen $p gespeichert.
Der dritte Befehl verwendet die GetOwner-Methode, um den Besitzer des Prozesses in $p abzurufen. 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 powershell
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
308 26 52308 61780 567 3.18 5632 powershell
377 26 62676 63384 575 3.88 5888 powershell
Get-Process -Id $PID
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
396 26 56488 57236 575 3.90 5888 powershell
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
-ComputerName
Gibt die Computer an, für die dieses Cmdlet aktive Prozesse abruft. Der Standardwert ist der lokale Computer.
Geben Sie den NetBIOS-Namen, eine IP-Adresse oder einen vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) eines oder mehrerer Computer ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder localhost ein.
Dieser Parameter basiert nicht auf Windows PowerShell-Remoting. Sie können den ComputerName Parameter dieses Cmdlets verwenden, auch wenn Ihr Computer nicht für die Ausführung von Remotebefehlen konfiguriert ist.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | Local computer |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Cn |
Parametersätze
Name
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
Id
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
InputObject
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-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.
Sie können die parameter FileVersionInfo und ComputerName Parameter des Cmdlets Get-Process im selben Befehl nicht verwenden.
Verwenden Sie das cmdlet Invoke-Command, um Dateiversionsinformationen für einen Prozess auf einem Remotecomputer abzurufen.
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
IdWithUserName
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
Id
| 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
InputObjectWithUserName
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
InputObject
| 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.
Verwenden Sie das Cmdlet Invoke-Command, um die Module abzurufen, die von einem Prozess auf einem Remotecomputer geladen wurden.
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
System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule
Standardmäßig gibt dieses Cmdlet ein System.Diagnostics.Process-Objekt zurück. Wenn Sie den FileVersionInfo-Parameter verwenden, wird ein System.Diagnostics.FileVersionInfo-Objekt zurückgegeben. Wenn Sie den Module-Parameter ohne den FileVersionInfo-Parameter verwenden, wird ein System.Diagnostics.ProcessModule-Objekt zurückgegeben.
Hinweise
- Sie können sich auch über die integrierten Aliase ps und gps auf dieses Cmdlet beziehen. Weitere Informationen finden Sie unter about_Aliases.
- 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.
- Sie können die Eigenschaften und Methoden des WMI-Objekts (Windows Management Instrumentation) Win32_Process in PowerShell verwenden. Weitere Informationen finden Sie unter
Get-WmiObjectund im WMI SDK. - Die Standardanzeige eines Prozesses ist eine Tabelle, die die folgenden Spalten enthält. Eine Beschreibung aller Eigenschaften von Prozessobjekten finden Sie unter Prozesseigenschaften in der MSDN Library.
- Handles: Die Anzahl der Handles, die der Prozess geöffnet hat.
- NPM(K): Die Menge an nicht ausgelagertem Speicher, die der Prozess verwendet, in Kilobyte.
- PM(K): Die Menge an auslagerungsfähigem Speicher, die 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 an virtuellem Speicher, die 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 verbraucht 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.