Freigeben über


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