Stop-Process
Zastaví jeden nebo více spuštěných procesů.
Syntax
Id (Výchozí)
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
Rutina Stop-Process zastaví jeden nebo více spuštěných procesů. Proces můžete zadat podle názvu procesu nebo ID procesu (PID) nebo předat objekt procesu Stop-Process.
Stop-Process funguje jenom na procesech spuštěných v místním počítači.
V systému Windows Vista a novějších verzích operačního systému Windows je nutné zastavit proces, který není vlastníkem aktuálního uživatele, spuštěním PowerShellu pomocí možnosti Spustit jako správce. Kromě toho se nezobrazí výzva k potvrzení, pokud nezadáte parametr Confirm.
Příklady
Příklad 1: Zastavení všech instancí procesu
PS C:\> Stop-Process -Name "notepad"
Tento příkaz zastaví všechny instance procesu Poznámkového bloku v počítači. Každá instance Poznámkového bloku běží ve vlastním procesu. Pomocí parametru Name určuje procesy, z nichž všechny mají stejný název. Pokud byste k zastavení stejných procesů použili parametr ID, museli byste uvést ID procesů jednotlivých instancí Poznámkového bloku.
Příklad 2: Zastavení konkrétní instance procesu
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
Tento příkaz zastaví konkrétní instanci procesu Poznámkového bloku. K identifikaci procesu používá ID procesu 3952. Parametr Potvrdit vás před zastavením procesu vyzve PowerShell k zobrazení výzvy. Vzhledem k tomu, že výzva obsahuje název procesu kromě ID, je to osvědčený postup.
Parametr PassThru předá objekt procesu do formátovače pro zobrazení. Bez tohoto parametru by se po příkazu Stop-Process nezobrazovat.
Příklad 3: Zastavení procesu a zjištění, že se zastavil
calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}
Tato série příkazů se spustí a zastaví proces Calc a pak detekuje procesy, které se zastavily.
První příkaz spustí instanci kalkulačky.
Druhý příkaz používá Get-Process získá objekt představující proces Calc a uloží ho do proměnné $p.
Třetí příkaz zastaví proces Calc. Používá InputObject parametr předat objekt Stop-Process.
Poslední příkaz získá všechny procesy v počítači, které byly spuštěny, ale které jsou nyní zastaveny. Používá Get-Process k získání všech procesů v počítači. Operátor kanálu (|) předá výsledky rutině Where-Object, která vybere ty, ve kterých je hodnota vlastnosti HasExited $True.
HasExited je pouze jednou vlastností procesních objektů. Chcete-li najít všechny vlastnosti, zadejte Get-Process | Get-Member.
Příklad 4: Zastavení procesu, který nepatří aktuálnímu uživateli
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>
Tyto příkazy ukazují účinek použití Vynucení k zastavení procesu, který není vlastníkem uživatele.
První příkaz používá k získání procesu Lsass Get-Process. Operátor kanálu odešle proces, který Stop-Process zastavit. Jak je znázorněno v ukázkovém výstupu, první příkaz selže se zprávou o odepření přístupu, protože tento proces může být zastaven pouze členem skupiny Správce v počítači.
Když se PowerShell otevře pomocí možnosti Spustit jako správce a příkaz se opakuje, PowerShell vás vyzve k potvrzení.
Druhý příkaz určuje, vynutit potlačit výzvu. V důsledku toho se proces zastaví bez potvrzení.
Parametry
-Confirm
Před spuštěním cmdletu vás vyzve k potvrzení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | viz |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Force
Zastaví zadané procesy bez výzvy k potvrzení. Ve výchozím nastavení Stop-Process před zastavením jakéhokoli procesu, který není vlastníkem aktuálního uživatele, výzva k potvrzení.
Pokud chcete najít vlastníka procesu, použijte rutinu Get-CimInstance k získání objektu Win32_Process, který představuje proces, a pak použijte metodu GetOwner objektu.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Id
Určuje ID procesů, které se mají zastavit. Pokud chcete zadat více ID, oddělte ID čárkami. Chcete-li najít KÓD PID procesu, zadejte Get-Process.
Vlastnosti parametru
| Typ: | Int32[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
Id
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | True |
| Hodnota ze zbývajících argumentů: | False |
-InputObject
Určuje objekty procesu, které se mají zastavit. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který objekty získá.
Vlastnosti parametru
| Typ: | Process[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
InputObject
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Name
Určuje názvy procesů, které se mají zastavit. Můžete zadat více názvů procesů oddělených čárkami nebo použít zástupné znaky.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | True |
| DontShow: | False |
| Aliasy: | ProcessName |
Sady parametrů
Name
| Position: | Named |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | True |
| Hodnota ze zbývajících argumentů: | False |
-PassThru
Vrátí objekt, který představuje proces. Ve výchozím nastavení tato rutina negeneruje žádný výstup.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-WhatIf
Ukazuje, co se stane, když se příkaz spustí. Příkazový modul nebyl spuštěn.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Wi |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
Process
Objekt procesu můžete do této cmdletu přesměrovat.
Výstupy
None
Ve výchozím nastavení tato rutina nevrací žádný výstup.
Process
Pokud použijete parametr PassThru, vrátí tato rutina objekt procesu představující zastavený proces.
Poznámky
PowerShell obsahuje následující aliasy pro Stop-Process:
- Všechny platformy:
spps
- Windows:
kill
Ve Windows PowerShellu můžete také použít vlastnosti a metody Win32_Process objektu WMI (Windows Management Instrumentation). Další informace najdete v tématu Get-CimInstance a sada WMI SDK.
- Při zastavování procesů si uvědomte, že zastavení procesu může zastavit proces a služby, které závisí na procesu. V extrémním případě může zastavení procesu zastavit Systém Windows.