Delen via


Stop-Process

Hiermee stopt u een of meer actieve processen.

Syntaxis

Id (Standaard)

Stop-Process
    [-Id] <Int32[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Name

Stop-Process
    -Name <String[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InputObject

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 op Windows Vista en latere versies van het Windows-besturingssysteem een proces wilt stoppen dat niet 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 Bevestigen opgeeft.

Voorbeelden

Voorbeeld 1: Alle exemplaren van een proces stoppen

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 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

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. Hierbij wordt de proces-id, 3952, gebruikt om het proces te identificeren. De Bevestig parameter PowerShell om u te vragen voordat het proces wordt gestopt. Omdat de prompt de procesnaam naast de id bevat, is dit de aanbevolen procedure. De parameter PassThru geeft het procesobject door aan de notatie voor weergave. Zonder deze parameter zou er na een Stop-Process opdracht geen weergave meer zijn.

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.

De tweede opdracht maakt gebruik van Get-Process haalt een object op dat het Calc proces vertegenwoordigt en slaat het vervolgens op in de $p variabele.

Met de derde opdracht wordt het Calc proces gestopt. Het gebruikt de parameter InputObject 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 maakt gebruik van 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. 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

Deze opdrachten tonen het effect van het gebruik van Forceren 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 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 de optie Uitvoeren als administrator en de opdracht wordt herhaald, wordt u gevraagd om bevestiging.

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

Parameters

-Confirm

Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Cf

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Force

Stopt de opgegeven processen zonder te vragen om bevestiging. Standaard wordt Stop-Process om bevestiging gevraagd voordat u een proces stopt dat niet eigendom is van de huidige gebruiker.

Als u de eigenaar van een proces wilt zoeken, gebruikt u de cmdlet Get-CimInstance om een Win32_Process-object op te halen dat het proces vertegenwoordigt en gebruikt u vervolgens de methode GetOwner van het object.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten: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.

Parametereigenschappen

Type:

Int32[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Id
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten: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.

Parametereigenschappen

Type:

Process[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

InputObject
Position:0
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten: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.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False
Aliassen:ProcessName

Parametersets

Name
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-PassThru

Retourneert een object dat het proces vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-WhatIf

Toont wat er zou gebeuren wanneer de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Wi

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

Process

U kunt een procesobject doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert standaard geen uitvoer.

Process

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 platforms:
    • spps
  • Windows:
    • kill

U kunt ook de eigenschappen en methoden van het WMI-Win32_Process-object (Windows Management Instrumentation) gebruiken in Windows PowerShell. Zie Get-CimInstance en de WMI SDK voor meer informatie.

  • Wanneer u processen stopt, realiseert u zich dat het stoppen van een proces kan stoppen met processen en services die afhankelijk zijn van het proces. In extreme gevallen kan het stoppen van een proces Windows stoppen.