Stop-Process
Beendet ausgeführte Prozesse.
Syntax
Stop-Process
[-Id] <Int32[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
-Name <String[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
[-InputObject] <Process[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Stop-Process
Cmdlet beendet einen oder mehrere ausgeführte Prozesse. Sie können einen Prozess anhand des Prozessnamens oder der Prozess-ID (PID) angeben oder ein Prozessobjekt an Stop-Process
übergeben. Stop-Process
funktioniert nur für Prozesse, die auf dem lokalen Computer ausgeführt werden.
Unter Windows Vista und höheren Versionen des Windows-Betriebssystems müssen Sie PowerShell mithilfe der Option Als Administrator ausführen starten, um einen Prozess zu beenden, der sich nicht im Besitz des aktuellen Benutzers befindet. Außerdem werden Sie nicht zur Bestätigung aufgefordert, es sei denn, Sie geben den Confirm-Parameter an .
Beispiele
Beispiel 1: Beenden aller Instanzen eines Prozesses
PS C:\> Stop-Process -Name "notepad"
Mit diesem Befehl werden alle Instanzen des Notepad-Prozesses (Editor) auf dem Computer beendet. Jede instance von Editor wird in einem eigenen Prozess ausgeführt. Es verwendet den Parameter Name , um die Prozesse anzugeben, die alle denselben Namen haben. Wenn Sie den Id-Parameter verwenden würden, um dieselben Prozesse zu beenden, müssten Sie die Prozess-IDs der einzelnen instance von Editor auflisten.
Beispiel 2: Beenden einer bestimmten instance eines Prozesses
PS C:\> Stop-Process -Id 3952 -Confirm -PassThru
Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (3952)".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):y
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
41 2 996 3212 31 3952 notepad
Mit diesem Befehl wird eine bestimmte Instanz des Notepad-Prozesses beendet. Der Prozess wird mit der Prozess-ID 3952 angegeben. Der Confirm-Parameter weist PowerShell an, Sie zu fragen, bevor der Prozess beendet wird. Da die Eingabeaufforderung zusätzlich zur ID den Prozessnamen enthält, empfiehlt sich dies.
Der PassThru-Parameter übergibt das Prozessobjekt zur Anzeige an den Formatierer. Ohne diesen Parameter würde nach einem Stop-Process
Befehl keine Anzeige erfolgen.
Beispiel 3: Beenden eines Prozesses und Erkennen, dass er beendet wurde
calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}
Diese Reihe von Befehlen startet und beendet den Calc
Prozess und erkennt dann prozesse, die beendet wurden.
Der erste Befehl startet eine instance des Rechners.
Der zweite Befehl ruft Get-Process
ein -Objekt ab, das den Calc
Prozess darstellt, und speichert es dann in der $p
Variablen.
Der dritte Befehl beendet den Calc
Prozess. Es verwendet den InputObject-Parameter , um das -Objekt an zu Stop-Process
übergeben.
Mit dem letzten Befehl werden alle zuvor auf dem Computer ausgeführten Prozesse abgerufen, die nun beendet sind. Es verwendet Get-Process
, um alle Prozesse auf dem Computer abzurufen. Der Pipelineoperator (|
) übergibt die Ergebnisse an das Where-Object
Cmdlet, das diejenigen auswählt, bei denen der Wert der HasExited-Eigenschaft $True ist. HasExited ist nur eine Eigenschaft von Prozessobjekten. Um alle Eigenschaften zu finden, geben Sie ein Get-Process | Get-Member
.
Beispiel 4: Beenden eines Prozesses, der nicht dem aktuellen Benutzer gehört
PS> Get-Process -Name "lsass" | Stop-Process
Stop-Process : Cannot stop process 'lsass (596)' because of the following error: Access is denied
At line:1 char:34
+ Get-Process -Name "lsass" | Stop-Process <<<<
[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process
Warning!
Are you sure you want to perform this action?
Performing operation 'Stop-Process' on Target 'lsass(596)'
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process -Force
[ADMIN]: PS>
Diese Befehle zeigen die Auswirkungen der Verwendung von Force zum Beenden eines Prozesses, der sich nicht im Besitz des Benutzers befindet.
Der erste Befehl verwendet Get-Process
, um den Lsass-Prozess abzurufen. Ein Pipelineoperator sendet den Prozess an, um Stop-Process
ihn zu beenden. Wie in der Beispielausgabe gezeigt, schlägt der erste Befehl mit der Meldung Access verweigert fehl, da dieser Prozess nur von einem Mitglied der Administratorgruppe auf dem Computer beendet werden kann.
Wenn PowerShell mithilfe der Option Als Administrator ausführen geöffnet wird und der Befehl wiederholt wird, fordert PowerShell Sie zur Bestätigung auf.
Mit dem zweiten Befehl wird erzwungen , um die Eingabeaufforderung zu unterdrücken. Der Prozess wird daher ohne Bestätigung beendet.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Beendet die angegebenen Prozesse, ohne zum Bestätigen aufzufordern. Fordert standardmäßig zur Bestätigung auf, bevor ein Prozess beendet wird, Stop-Process
der sich nicht im Besitz des aktuellen Benutzers befindet.
Um den Besitzer eines Prozesses zu finden, verwenden Sie das Get-CimInstance
Cmdlet, um ein Win32_Process-Objekt abzurufen, das den Prozess darstellt, und verwenden Sie dann die GetOwner-Methode des -Objekts.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Gibt die Prozess-IDs der zu beendenden Prozesse an. Wenn Sie mehrere IDs angeben, trennen Sie diese durch Kommas. Um die PID eines Prozesses zu ermitteln, geben Sie ein Get-Process
.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
Gibt die zu beendenden 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.
Type: | Process[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Gibt die Prozessnamen der zu beendenden Prozesse an. Sie können mehrere Prozessnamen eingeben, durch Kommas getrennt oder Wildcardzeichen verwenden.
Type: | String[] |
Aliases: | ProcessName |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Gibt ein -Objekt zurück, das den Prozess darstellt. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können ein Prozessobjekt an dieses Cmdlet übergeben.
Ausgaben
None, System.Diagnostics.Process
Dieses Cmdlet gibt ein System.Diagnostics.Process-Objekt zurück, das den beendeten Prozess darstellt, wenn Sie den PassThru-Parameter angeben. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.
Hinweise
Sie können auch auf die
Stop-Process
integrierten Aliase verweisen,kill
undspps
weitere Informationen finden Sie unter about_Aliases.Sie können auch die Eigenschaften und Methoden der Windows-Verwaltungsinstrumentation (WMI) Win32_Process-Objekts in Windows PowerShell verwenden. Weitere Informationen finden Sie unter
Get-CimInstance
und dem WMI SDK.Beachten Sie beim Beenden von Prozessen, dass das Beenden eines Prozesses Prozesse und Dienste beenden kann, die vom Prozess abhängen. Im Extremfall kann durch Beenden eines Prozesses sogar Windows beendet werden.