Get-Process
Ruft die Prozesse ab, die auf dem lokalen Computer oder einem Remotecomputer ausgeführt werden.
Syntax
Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]
Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]
Get-Process -InputObject <Process[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]
Beschreibung
Das Cmdlet "Get-Process" ruft die Prozesse auf einem lokalen oder einem Remotecomputer ab.
Ohne Parameter ruft Get-Process alle Prozesse auf dem lokalen Computer ab. Sie können auch einen bestimmten Prozess mit dem Prozessnamen bzw. der Prozess-ID (PID) angeben oder ein Prozessobjekt über die Pipeline an Get-Process übergeben.
Standardmäßig gibt Get-Process ein Prozessobjekt mit detaillierten Informationen zu dem Prozess zurück und unterstützt Methoden, mit denen Sie den Prozess starten und beenden können. Mit den Parametern von Get-Process können Sie auch Dateiversionsinformationen für das im Prozess ausgeführte Programm sowie die Module abrufen, die vom Prozess geladen wurden.
Parameter
-ComputerName <string[]>
Ruft die Prozesse ab, die auf den angegebenen Computern ausgeführt werden. Der Standardwert ist der lokale Computer.
Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen eines oder mehrerer Computer ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder "localhost" ein.
Dieser Parameter beruht nicht auf Windows PowerShell-Remoting. Sie können den ComputerName-Parameter von Get-Process auch dann verwenden, wenn der Computer nicht für das Ausführen von Remotebefehlen konfiguriert ist.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-FileVersionInfo
Ruft die Dateiversionsinformationen für das Programm ab, das im Prozess ausgeführt wird.
Unter Windows Vista und höheren Versionen von Windows müssen Sie Windows PowerShell mit der Option "Als Administrator ausführen" öffnen, um diesen Parameter für Prozesse zu verwenden, deren Besitzer Sie nicht sind.
Das Verwenden dieses Parameters entspricht dem Abrufen der MainModule.FileVersionInfo-Eigenschaft für jedes Prozessobjekt. Wenn Sie diesen Parameter verwenden, gibt Get-Process ein FileVersionInfo-Objekt (System.Diagnostics.FileVersionInfo) und kein Prozessobjekt zurück. Sie können daher die Ausgabe des Befehls nicht über die Pipeline an ein Cmdlet übergeben, das ein Prozessobjekt erwartet, z. B. Stop-Process.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Id <Int32[]>
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 suchen, geben Sie "get-process" ein.
Erforderlich? |
true |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-InputObject <Process[]>
Gibt eines oder mehrere 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.
Erforderlich? |
true |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue) |
Platzhalterzeichen akzeptieren? |
false |
-Module
Ruft die Module ab, die von den Prozessen geladen wurden.
Unter Windows Vista und höheren Versionen von Windows müssen Sie Windows PowerShell mit der Option "Als Administrator ausführen" öffnen, um diesen Parameter für Prozesse zu verwenden, deren Besitzer Sie nicht sind.
Dieser Parameter entspricht dem Abrufen der Modules-Eigenschaft für jedes Prozessobjekt. Wenn Sie diesen Parameter verwenden, gibt Get-Process ein ProcessModule-Objekt (System.Diagnostics.ProcessModule) und kein Prozessobjekt zurück. Sie können daher die Ausgabe des Befehls nicht über die Pipeline an ein Cmdlet übergeben, das ein Prozessobjekt erwartet, z. B. Stop-Process.
Wenn Sie den Module-Parameter und den FileVersionInfo-Parameter im gleichen Befehl verwenden, gibt Get-Process ein FileVersionInfo-Objekt mit Informationen über die Dateiversion aller Module zurück.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Name <string[]>
Gibt einen oder mehrere Prozesse mit ihrem Prozessnamen an. Sie können mehrere Prozessnamen eingeben (die durch Kommas voneinander getrennt sind) oder Platzhalterzeichen verwenden. Der Parametername ("Name") ist optional.
Erforderlich? |
false |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
true |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.Diagnostics.Process Sie können ein Prozessobjekt über die Pipeline an Get-Process übergeben. |
Ausgaben |
System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagnostics.ProcessModule Standardmäßig gibt Get-Process ein System.Diagnostics.Process-Objekt zurück. Wenn Sie den FileVersionInfo-Parameter verwenden, wird ein System.Diagnotics.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 die Parameter "Name", "ID" und "InputObject" nicht in demselben Befehl verwenden.
Sie können auch über die integrierten Aliase "ps" und "gps" auf Get-Process verweisen. Weitere Informationen finden Sie unter "about_Aliases".
Sie können auch die Eigenschaften und Methoden des WMI-Objekts "Win32_Process" in Windows PowerShell verwenden. Weitere Informationen finden Sie unter "Get-WmiObject" und im WMI SDK (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation).
Die Standardanzeige eines Prozesses ist eine Tabelle mit den folgenden Spalten:
– Handles: Die Anzahl der Handles, die vom Prozess geöffnet wurden.
– NPM(K): Die Menge des vom Prozess verwendeten nicht ausgelagerten Arbeitsspeichers in Kilobytes.
– PM(K): Die Menge des vom Prozess verwendeten auslagerungsfähigen Arbeitsspeichers in Kilobytes.
– WS(K): Die Größe des Workingsets des Prozesses in Kilobytes. Das Workingset besteht aus Speicherseiten, auf die zuvor vom Prozess verwiesen wurde.
– VM(M): Die Menge des vom Prozess verwendeten virtuellen Speichers in Megabytes. Der virtuelle Speicher umfasst den Speicher der Auslagerungsdateien auf dem Datenträger.
– CPU(s): Die Menge an Prozessorzeit, die vom Prozess auf allen Prozessoren verwendet wurde, 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 Prozesse verwenden, die mithilfe von Format-Table verfügbar sind, beispielsweise "StartTime" und "Priority". Zudem können Sie eigene Ansichten erstellen. Weitere Informationen finden Sie unter "Format-Table".
Beispiel 1
C:\PS>Get-Process
Beschreibung
-----------
Mit diesem Befehl wird eine Liste aller auf dem lokalen Computer ausgeführten Prozesse abgerufen. Eine Definition der einzelnen Spalten finden Sie im Abschnitt "Zusätzliche Hinweise" des Hilfethemas zu Get-Help.
Beispiel 2
C:\PS>Get-Process winword, explorer | format-list *
Beschreibung
-----------
Mit diesem Befehl werden alle verfügbaren Daten zu den Prozessen "Winword" und "Explorer" auf dem Computer abgerufen. Mit dem Name-Parameter werden die Prozesse angegeben, der optionale Parametername wird jedoch ausgelassen. Der Pipelineoperator (|) übergibt die Daten an das Cmdlet "Format-List", das alle verfügbaren Eigenschaften (*) des Winword-Prozessobjekts und des Explorer-Prozessobjekts anzeigt.
Sie können die Prozesse auch anhand ihrer Prozess-IDs angeben. Beispiel: "get-process -id 664, 2060".
Beispiel 3
C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000}
Beschreibung
-----------
Mit diesem Befehl werden alle Prozesse mit einem Workingset abgerufen, dessen Größe 20 MB übersteigt. Mit dem Cmdlet "Get-Process" werden alle ausgeführten Prozesse abgerufen. Der Pipelineoperator (|) übergibt die Prozessobjekte an das Cmdlet "Where-Object", das nur das Objekt auswählt, dessen WorkingSet-Eigenschaft einen Wert über 20.000.000 Bytes aufweist.
"WorkingSet" ist nur eine von vielen Eigenschaften von Prozessobjekten. Um alle Eigenschaften anzuzeigen, geben Sie "Get-Process | Get-Member" ein. 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
C:\PS>$a = get-process
C:\PS> get-process -inputobject $a | format-table -view priority
Beschreibung
-----------
Diese Befehle führen die Prozesse auf dem Computer in Gruppen auf Grundlage ihrer Prioritätsklasse auf.
Mit dem ersten Befehl werden alle Prozesse auf dem Computer abgerufen und dann in der Variablen "$a" gespeichert.
Der zweite Befehl übergibt die in der Variablen "$a" gespeicherten Prozessobjekte mit dem InputObject-Parameter an das Cmdlet "Get-Process". Der Pipelineoperator übergibt die Objekte an das Cmdlet "Format-Table", das die Prozesse mit der Prioritätsansicht formatiert.
Die Prioritätsansicht und andere Ansichten werden in PS1XML-Formatdateien im Windows PowerShell-Stammverzeichnis ("$pshome") definiert.
Beispiel 5
C:\PS>get-process powershell -computername S1, localhost | ft @{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 -ne $()) { $_.CPU.ToString("N")}}}, Id, MachineName, ProcessName -auto
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName
------ ----- ----- ----- ------ -- ----------- -----------
6 23500 31340 142 1980 S1 powershell
6 23500 31348 142 4016 S1 powershell
27 54572 54520 576 4428 localhost powershell
Beschreibung
-----------
In diesem Beispiel wird der Befehl "Format-Table" (alias = ft) bereitgestellt, der die MachineName-Eigenschaft der Standardausgabeanzeige von Get-Process hinzufügt.
Beispiel 6
C:\PS>get-process powershell -fileversioninfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Beschreibung
-----------
Dieser Befehl ruft mit dem FileVersionInfo-Parameter die Versionsinformationen für die Datei "PowerShell.exe" ab, bei der es sich um das Hauptmodul für den PowerShell-Prozess handelt.
Wenn Sie diesen Befehl unter Windows Vista und höheren Versionen von Windows mit Prozessen ausführen möchten, deren Besitzer Sie nicht sind, müssen Sie Windows PowerShell mit der Option "Als Administrator ausführen" öffnen.
Beispiel 7
C:\PS>get-process sql* -module
Beschreibung
-----------
Dieser Befehl ruft mit dem Module-Parameter die Module ab, die vom Prozess geladen wurden. Dieser Befehl ruft die Module für die Prozesse ab, deren Name mit "sql" beginnt.
Wenn Sie diesen Befehl unter Windows Vista (und höheren Versionen von Windows) mit Prozessen ausführen möchten, deren Besitzer Sie nicht sind, müssen Sie Windows PowerShell mit der Option "Als Administrator ausführen" starten.
Beispiel 8
C:\PS>$p = get-wmiobject win32_process -filter "name='powershell.exe'"
C:\PS> $p.getowner()
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Domain : DOMAIN01
ReturnValue : 0
User : user01
Beschreibung
-----------
Dieser Befehl zeigt, wie der Besitzer eines Prozesses ermittelt wird. Da das System.Diagnostics.Process-Objekt, das Get-Process zurückgibt, nicht über eine Eigenschaft oder eine Methode verfügt, die den Prozessbesitzer zurückgibt, verwendet der Befehl
das Cmdlet "Get-WmiObject", um ein Win32_Process-Objekt abzurufen, das den gleichen Prozess darstellt.
Der erste Befehl ruft den PowerShell-Prozess mit Get-WmiObject ab. Er wird in der Variablen "$p" gespeichert.
Der zweite Befehl ruft den Besitzer des Prozesses mithilfe der GetOwner-Methode in "$p" ab. Der Befehl zeigt dann, dass der Besitzer "Domain01\user01" lautet.
Beispiel 9
C:\PS>get-process powershell
C:\PS> get-process -id $pid
C:\PS> 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
C:\PS> 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
Beschreibung
-----------
Diese Befehle zeigen, wie mit der automatischen Variablen "$pid" der Prozess identifiziert werden kann, der die aktuelle Windows PowerShell-Sitzung hostet. Sie können den Hostprozess mithilfe dieser Methode von anderen PowerShell-Prozessen unterscheiden, die Sie beenden oder schließen möchten.
Mit dem ersten Befehl werden alle PowerShell-Prozesse in der aktuellen Sitzung abgerufen.
Der zweite Befehl ruft den PowerShell-Prozess ab, der die aktuelle Sitzung hostet.
Siehe auch
Konzepte
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process