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 endast på processer som körs på den lokala datorn.
I Windows Vista och senare versioner av Windows-operativsystemet måste du starta PowerShell med alternativet Kör som administratör för att stoppa en process som inte ägs av den aktuella användaren. 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 en 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 formateren 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
PS C:\> calc
PS C:\> $p = Get-Process -Name "calc"
PS C:\> Stop-Process -InputObject $p
PS C:\> 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änder 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 är $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 C:\> 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 C:\> 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 C:\> Get-Process -Name "lsass" | Stop-Process -Force
[ADMIN]: PS C:\>
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 Stop-Process för 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 prompten. 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 uppmanar Stop-Process 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-WmiObject för att hämta ett Win32_Process objekt som representerar processen och använder sedan getowner-metoden 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:t använder du kommatecken för att separera ID:erna.
Om du vill hitta PID 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 denna cmdlet 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
Du kan skicka ett processobjekt till den här cmdleten.
Utdata
None, System.Diagnostics.Process
Den här cmdleten returnerar ett System.Diagnostics.Process-objekt som representerar den stoppade processen, om du anger parametern PassThru . Annars genererar den här cmdleten inga utdata.
Kommentarer
Du kan också referera till Stop-Process med dess inbyggda alias, kill och spps. Mer information finns i about_Aliases.
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-WmiObject och WMI SDK.
När du stoppar processer bör du inse att ett stopp av en process kan stoppa processer och tjänster som är beroende av processen. I extrema fall kan ett stopp av en process stoppa Windows.