Dela via


Stop-Process

Stoppar en eller flera processer som körs.

Syntax

Id (Standard)

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

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

Exempel

Exempel 1: Stoppa alla instanser av en process

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 Name för att ange processerna, som alla har samma namn. Om du skulle använda parametern ID 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

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

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

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:jfr

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Force

Stoppar de angivna processerna utan att fråga efter bekräftelse. Som standard uppmanar Stop-Process om bekräftelse 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.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:

Int32[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

Id
Position:0
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument: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.

Parameteregenskaper

Typ:

Process[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

InputObject
Position:0
Obligatorisk:True
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Name

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

Parameteregenskaper

Typ:

String[]

Standardvärde:None
Stöder jokertecken:True
DontShow:False
Alias:ProcessName

Parameteruppsättningar

Name
Position:Named
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-PassThru

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

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-WhatIf

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

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:Wi

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

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 Process-objekt 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.