Stop-Process
Hiermee stopt u een of meer actieve processen.
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>]
Description
De Stop-Process
cmdlet stopt een of meer actieve processen. U kunt een proces opgeven op basis van procesnaam of proces-id (PID) of een procesobject doorgeven aan Stop-Process
. Stop-Process
werkt alleen op processen die op de lokale computer worden uitgevoerd.
Als u in Windows Vista en latere versies van het Windows-besturingssysteem een proces wilt stoppen dat geen eigendom is van de huidige gebruiker, moet u PowerShell starten met behulp van de optie Als administrator uitvoeren. U wordt ook niet om bevestiging gevraagd, tenzij u de parameter Confirm opgeeft .
Voorbeelden
Voorbeeld 1: alle exemplaren van een proces stoppen
PS C:\> Stop-Process -Name "notepad"
Met deze opdracht worden alle exemplaren van het Kladblok-proces op de computer gestopt. Elk exemplaar van Kladblok wordt in een eigen proces uitgevoerd. De parameter Name wordt gebruikt om de processen op te geven, die allemaal dezelfde naam hebben. Als u de parameter Id zou gebruiken om dezelfde processen te stoppen, moet u de proces-id's van elk exemplaar van Kladblok vermelden.
Voorbeeld 2: Een specifiek exemplaar van een proces stoppen
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
Met deze opdracht wordt een bepaald exemplaar van het Kladblok-proces gestopt. De proces-id, 3952, wordt gebruikt om het proces te identificeren. De parameter Confirm geeft PowerShell de opdracht om u te vragen voordat het proces wordt gestopt. Omdat de prompt naast de id ook de procesnaam bevat, wordt dit aanbevolen.
De parameter PassThru geeft het procesobject door aan de formatter voor weergave. Zonder deze parameter zou er geen weergave zijn na een Stop-Process
opdracht.
Voorbeeld 3: Een proces stoppen en detecteren dat het is gestopt
calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}
Deze reeks opdrachten start en stopt het Calc
proces en detecteert vervolgens processen die zijn gestopt.
Met de eerste opdracht wordt een exemplaar van de rekenmachine gestart.
Met de tweede opdracht wordt Get-Process
een object opgehaald dat het Calc
proces vertegenwoordigt en wordt het vervolgens opgeslagen in de $p
variabele.
Met de derde opdracht wordt het Calc
proces gestopt. De parameter InputObject wordt gebruikt om het object door te geven aan Stop-Process
.
Met de laatste opdracht worden alle processen op de computer opgehaald die werden uitgevoerd, maar die nu zijn gestopt. Het gebruikt Get-Process
om alle processen op de computer op te halen. De pijplijnoperator (|
) geeft de resultaten door aan de Where-Object
cmdlet, die de resultaten selecteert waar de waarde van de eigenschap HasExited is $True. HasExited is slechts één eigenschap van procesobjecten. Als u alle eigenschappen wilt zoeken, typt u Get-Process | Get-Member
.
Voorbeeld 4: Een proces stoppen dat geen eigendom is van de huidige gebruiker
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>
Deze opdrachten tonen het effect van het gebruik van Force om een proces te stoppen dat niet eigendom is van de gebruiker.
De eerste opdracht gebruikt Get-Process
om het Lsass-proces op te halen. Een pijplijnoperator verzendt het proces naar Stop-Process
om het te stoppen. Zoals wordt weergegeven in de voorbeelduitvoer, mislukt de eerste opdracht met een bericht Toegang geweigerd, omdat dit proces alleen kan worden gestopt door een lid van de groep Administrator op de computer.
Wanneer PowerShell wordt geopend met behulp van de optie Als administrator uitvoeren en de opdracht wordt herhaald, wordt u om bevestiging gevraagd.
De tweede opdracht geeft forceren op om de prompt te onderdrukken. Als gevolg hiervan wordt het proces zonder bevestiging gestopt.
Parameters
-Confirm
Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Stopt de opgegeven processen zonder om bevestiging te vragen. Standaard wordt Stop-Process
om bevestiging gevraagd voordat een proces wordt gestopt dat niet eigendom is van de huidige gebruiker.
Als u de eigenaar van een proces wilt vinden, gebruikt u de Get-CimInstance
cmdlet om een Win32_Process-object op te halen dat het proces vertegenwoordigt en gebruikt u vervolgens de methode GetOwner van het object.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Hiermee geeft u de proces-id's van de processen die moeten worden gestopt. Als u meerdere id's wilt opgeven, gebruikt u komma's om de id's te scheiden. Als u de PID van een proces wilt vinden, typt u Get-Process
.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
Hiermee geeft u de procesobjecten te stoppen. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald.
Type: | Process[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Hiermee geeft u de procesnamen van de processen die moeten worden gestopt. U kunt meerdere procesnamen typen, gescheiden door komma's, of jokertekens gebruiken.
Type: | String[] |
Aliases: | ProcessName |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Retourneert een object dat het proces vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt een procesobject doorsnijden naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert standaard geen uitvoer.
Wanneer u de parameter PassThru gebruikt, retourneert deze cmdlet een process-object dat het gestopte proces vertegenwoordigt.
Notities
PowerShell bevat de volgende aliassen voor Stop-Process
:
- Alle platformen:
spps
- Windows:
kill
U kunt ook de eigenschappen en methoden van het WMI-Win32_Process-object (Windows Management Instrumentation) in Windows PowerShell gebruiken. Zie en de WMI SDK voor meer informatie Get-CimInstance
.
- Wanneer u processen stopt, moet u zich realiseren dat het stoppen van een proces het proces en de services die afhankelijk zijn van het proces kunnen stoppen. In een extreem geval kan het stoppen van een proces Windows stoppen.