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 worden uitgevoerd op de lokale computer.

In Windows Vista en latere versies van het Windows-besturingssysteem moet u PowerShell starten met de optie Uitvoeren als administrator om een proces te stoppen dat niet eigendom is van de huidige gebruiker. U wordt ook niet om bevestiging gevraagd, tenzij u de parameter Bevestigen 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. Hierbij wordt de parameter Name gebruikt om de processen op te geven, die allemaal dezelfde naam hebben. Als u de id-parameter zou gebruiken om dezelfde processen te stoppen, moet u de proces-id's van elke instantie 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 stopt u een bepaald exemplaar van het Kladblok-proces. De proces-id, 3952, wordt gebruikt om het proces te identificeren. De parameter Bevestigen stuurt PowerShell om u te vragen voordat het proces wordt gestopt. Omdat de prompt de procesnaam naast de id bevat, is dit best practice. De parameter PassThru geeft het procesobject door aan de opmaak voor weergave. Zonder deze parameter wordt er na een Stop-Process opdracht geen weergave weergegeven.

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 wordt gestart 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 Get-Process wordt een object opgehaald dat het Calc proces vertegenwoordigt en wordt het vervolgens opgeslagen in de $p variabele.

De derde opdracht stopt het Calc proces. 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 actief waren, 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, waarmee de waarde van de eigenschap HasExited wordt $True geselecteerd. 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 niet 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 om het te Stop-Process stoppen. Zoals wordt weergegeven in de voorbeelduitvoer, mislukt de eerste opdracht met een bericht dat Toegang is 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 Uitvoeren als administrator en de opdracht wordt herhaald, wordt u om bevestiging gevraagd.

Met de tweede opdracht geeft u Force op om de prompt te onderdrukken. Als gevolg hiervan wordt het proces gestopt zonder bevestiging.

Parameters

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Force

Stopt de opgegeven processen zonder te vragen om bevestiging. Stop-Process Standaard wordt om bevestiging gevraagd voordat u een proces stopt 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
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 zoeken, typt u Get-Process.

Type:Int32[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-InputObject

Hiermee geeft u de procesobjecten die moeten worden gestopt. 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
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
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
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
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

Process

U kunt een procesobject doorsluisen naar deze cmdlet.

Uitvoerwaarden

None, System.Diagnostics.Process

Deze cmdlet retourneert een System.Diagnostics.Process-object dat het gestopte proces vertegenwoordigt, als u de parameter PassThru opgeeft. Anders genereert deze cmdlet geen uitvoer.

Notities

  • U kunt ook verwijzen naar Stop-Process de ingebouwde aliassen kill en spps zie about_Aliases voor meer informatie.

    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, realiseert u zich dat het stoppen van een proces proces en services die afhankelijk zijn van het proces, kan stoppen. In een extreem geval kan het stoppen van een proces Windows stoppen.