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.
Typ: | SwitchParameter |
Alias: | cf |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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
.
Typ: | Int32[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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.
Typ: | Process[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Name
Anger processnamnen för de processer som ska stoppas. Du kan skriva flera processnamn, avgränsade med kommatecken eller använda jokertecken.
Typ: | String[] |
Alias: | ProcessName |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | True |
-PassThru
Returnerar ett objekt som representerar processen. Som standard genererar den här cmdleten inga utdata.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Typ: | SwitchParameter |
Alias: | wi |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka ett processobjekt till den här cmdleten.
Utdata
None
Som standard returnerar den här cmdleten inga utdata.
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.