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 Zastavit proces 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 zastavit proces. zastavit proces funguje pouze 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
PS C:\> calc
PS C:\> $p = Get-Process -Name "calc"
PS C:\> Stop-Process -InputObject $p
PS C:\> Get-Process | Where-Object {$_.HasExited}
Tato řada příkazů spustí a zastaví proces Calc a pak zjistí procesy, které se zastavily.
První příkaz spustí instanci kalkulačky.
Druhý příkaz používá Get-Process získá objekt, který představuje proces Calc, a pak ho uloží 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 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:\>
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 zastavit proces 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í zastavit proces před zastavením jakéhokoli procesu, který není vlastníkem aktuálního uživatele, zobrazí výzvu k potvrzení.
Pokud chcete najít vlastníka procesu, použijte rutinu Get-WmiObject 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, System.Diagnostics.Process
Tato rutina vrátí objekt
Poznámky
Můžete také odkazovat na Stop-Process pomocí předdefinovaných aliasů, ukončit a spps. Další informace najdete v tématu about_Aliases.
Ve Windows PowerShellu můžete také použít vlastnosti a metody Win32_Process objektu WMI (Windows Management Instrumentation). Další informace naleznete v tématu Get-WmiObject a 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.