Stop-Process
Zastaví jeden nebo více spuštěných procesů.
Syntaxe
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
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
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
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
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 rutiny vás vyzve k potvrzení.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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
.
Typ: | Int32[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | 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á.
Typ: | Process[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | 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.
Typ: | String[] |
Aliasy: | ProcessName |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
-PassThru
Vrátí objekt, který představuje proces. Ve výchozím nastavení tato rutina negeneruje žádný výstup.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-WhatIf
Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Objekt procesu můžete do této rutiny převést.
Výstupy
None
Ve výchozím nastavení tato rutina nevrací žádný výstup.
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.