Stop-Process

Stoppar en eller flera processer som körs.

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

Cmdleten Stop-Process stoppar en eller flera processer som körs. Du kan ange en process efter processnamn eller process-ID (PID) eller skicka ett processobjekt till Stop-Process. Stop-Process fungerar bara på processer som körs på den lokala datorn.

För att stoppa en process som inte ägs av den aktuella användaren måste du starta PowerShell med alternativet Kör som administratör i Windows Vista och senare versioner av Windows-operativsystemet. Du uppmanas inte heller att bekräfta om du inte anger parametern Bekräfta .

Exempel

Exempel 1: Stoppa alla instanser av en process

PS C:\> Stop-Process -Name "notepad"

Det här kommandot stoppar alla instanser av Anteckningar processen på datorn. Varje instans av Anteckningar körs i sin egen process. Den använder parametern Namn för att ange processerna, som alla har samma namn. Om du skulle använda ID-parametern för att stoppa samma processer måste du ange process-ID:t för varje instans av Anteckningar.

Exempel 2: Stoppa en specifik instans av en process

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

Det här kommandot stoppar en viss instans av Anteckningar processen. Den använder process-ID, 3952, för att identifiera processen. Parametern Confirm dirigerar PowerShell till att fråga dig innan processen stoppas. Eftersom prompten innehåller processnamnet utöver dess ID är detta bästa praxis. Parametern PassThru skickar processobjektet till formateringen för visning. Utan den här parametern skulle det inte finnas någon visning efter ett Stop-Process kommando.

Exempel 3: Stoppa en process och identifiera att den har stoppats

calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}

Den här serien med kommandon startar och stoppar Calc processen och identifierar sedan processer som har stoppats.

Det första kommandot startar en instans av kalkylatorn.

Det andra kommandot använder Get-Process hämtar ett objekt som representerar Calc processen och lagrar det sedan i variabeln $p .

Det tredje kommandot stoppar Calc processen. Den använder parametern InputObject för att skicka objektet till Stop-Process.

Det sista kommandot hämtar alla processer på datorn som kördes men som nu har stoppats. Den används Get-Process för att hämta alla processer på datorn. Pipelineoperatorn (|) skickar resultatet till cmdleten Where-Object , som väljer de där värdet för egenskapen HasExited $True. HasExited är bara en egenskap för processobjekt. Om du vill hitta alla egenskaper skriver du Get-Process | Get-Member.

Exempel 4: Stoppa en process som inte ägs av den aktuella användaren

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>

Dessa kommandon visar effekten av att använda Force för att stoppa en process som inte ägs av användaren.

Det första kommandot använder Get-Process för att hämta Lsass-processen. En pipelineoperator skickar processen till för Stop-Process att stoppa den. Som du ser i exempelutdata misslyckas det första kommandot med ett meddelande om nekad åtkomst eftersom den här processen endast kan stoppas av en medlem i gruppen Administratör på datorn.

När PowerShell öppnas med alternativet Kör som administratör och kommandot upprepas uppmanar PowerShell dig att bekräfta.

Det andra kommandot anger Tvinga för att ignorera kommandotolken. Därför stoppas processen utan bekräftelse.

Parametrar

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten.

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

-Force

Stoppar de angivna processerna utan att fråga efter bekräftelse. Som standard Stop-Process uppmanas du att bekräfta innan någon process som inte ägs av den aktuella användaren stoppas.

Om du vill hitta ägaren till en process använder du cmdleten Get-CimInstance för att hämta ett Win32_Process objekt som representerar processen och använder sedan metoden GetOwner för objektet.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Anger process-ID:t för de processer som ska stoppas. Om du vill ange flera ID:er använder du kommatecken för att separera ID:erna. Om du vill hitta PID:en för en process skriver du Get-Process.

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

-InputObject

Anger vilka processobjekt som ska stoppas. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.

Type:Process[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Anger processnamnen för de processer som ska stoppas. Du kan skriva flera processnamn, avgränsade med kommatecken eller använda jokertecken.

Type:String[]
Aliases:ProcessName
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-PassThru

Returnerar ett objekt som representerar processen. Som standard genererar den här cmdleten inga utdata.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

Process

Du kan skicka ett processobjekt till den här cmdleten.

Utdata

None

Som standard returnerar den här cmdleten inga utdata.

Process

När du använder parametern PassThru returnerar den här cmdleten ett processobjekt som representerar den stoppade processen.

Kommentarer

PowerShell innehåller följande alias för Stop-Process:

  • Alla plattformar:
    • spps
  • Windows:
    • kill

Du kan också använda egenskaperna och metoderna för WMI-objektet (Windows Management Instrumentation) Win32_Process i Windows PowerShell. Mer information finns i Get-CimInstance och WMI SDK.

  • När du stoppar processer bör du tänka på att stoppa en process kan stoppa processer och tjänster som är beroende av processen. I extrema fall kan ett stopp av en process stoppa Windows.