Stop-Process
Egy vagy több futó folyamat leállítása.
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
A Stop-Process
parancsmag leállítja egy vagy több futó folyamatot. Megadhat egy folyamatot folyamatnév vagy folyamatazonosító (PID) alapján, vagy átadhat egy folyamatobjektumot.Stop-Process
Stop-Process
csak a helyi számítógépen futó folyamatokon működik.
A Windows Vista és a Windows operációs rendszer újabb verzióiban a Nem az aktuális felhasználó tulajdonában lévő folyamat leállításához a PowerShellt a Futtatás rendszergazdaként lehetőséggel kell elindítania. Emellett a rendszer csak akkor kéri a megerősítést, ha megadja a Megerősítés paramétert.
Példák
1. példa: Folyamat összes példányának leállítása
PS C:\> Stop-Process -Name "notepad"
Ez a parancs leállítja a jegyzettömb folyamatának összes példányát a számítógépen. A Jegyzettömb minden példánya a saját folyamatában fut. A Név paraméter használatával adja meg azokat a folyamatokat, amelyek mindegyike ugyanazzal a névvel rendelkezik. Ha az Id paramétert használná ugyanazon folyamatok leállításához, a Jegyzettömb egyes példányainak folyamatazonosítóit kell felsorolnia.
2. példa: Folyamat adott példányának leállítása
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
Ez a parancs leállítja a Jegyzettömb folyamat egy adott példányát. A folyamat azonosításához a 3952-ben megadott folyamatazonosítót használja. A Confirm paraméter arra utasítja a PowerShellt, hogy kérje meg, mielőtt leállítja a folyamatot. Mivel a parancssor az azonosító mellett a folyamat nevét is tartalmazza, ez az ajánlott eljárás.
A PassThru paraméter átadja a folyamatobjektumot a formázónak megjelenítésre. E paraméter nélkül a parancs után Stop-Process
nem jelenik meg.
3. példa: Folyamat leállítása és annak észlelése
calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}
Ez a parancssorozat elindítja és leállítja a folyamatot, majd észleli a Calc
leállított folyamatokat.
Az első parancs elindítja a számológép egy példányát.
A második parancs egy olyan objektumot használ Get-Process
, amely a Calc
folyamatot jelöli, majd tárolja a $p
változóban.
A harmadik parancs leállítja a Calc
folyamatot. Az InputObject paramétert használja az objektum átadásáhozStop-Process
.
Az utolsó parancs lekéri a számítógépen futó, de most leállított összes folyamatot. Get-Process
Az összes folyamatot a számítógépen használja. A folyamatkezelő (|
) átadja az eredményeket a Where-Object
parancsmagnak, amely kiválasztja azokat, amelyekben a HasExited tulajdonság értéke $True. A HasExited csak a folyamatobjektumok egyik tulajdonsága. Az összes tulajdonság megkereséséhez írja be a következőt Get-Process | Get-Member
:
4. példa: Az aktuális felhasználó által nem birtokolt folyamat leállítása
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>
Ezek a parancsok azt mutatják, hogy a Force használatával leállíthat egy olyan folyamatot, amely nem a felhasználó tulajdonában van.
Az első parancs az Lsass-folyamat lekérésére használja Get-Process
. A folyamatüzemeltető elküldi a folyamatot a leállításához Stop-Process
. Ahogy a mintakimenetben látható, az első parancs egy Hozzáférés megtagadva üzenettel meghiúsul, mivel ezt a folyamatot csak a rendszergazdai csoport egy tagja állíthatja le a számítógépen.
Ha a PowerShellt a Futtatás rendszergazdaként lehetőséggel nyitja meg, és a parancs ismétlődik, a PowerShell megerősítést kér.
A második parancs a kényszerítést adja meg a kérés letiltásához. Ennek eredményeképpen a folyamat megerősítés nélkül leáll.
Paraméterek
-Confirm
Jóváhagyást kér a parancsmag futtatása előtt.
Típus: | SwitchParameter |
Aliasok: | cf |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Force
A megadott folyamatokat anélkül állítja le, hogy megerősítést kér. Alapértelmezés szerint megerősítést kér, Stop-Process
mielőtt leállítja az aktuális felhasználó tulajdonában nem lévő folyamatokat.
A folyamat tulajdonosának megkereséséhez a parancsmaggal szerezze be a Get-CimInstance
folyamatot jelképező Win32_Process objektumot, majd használja az objektum GetOwner metódusát.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Id
Megadja a leállítani kívánt folyamatok folyamatazonosítóit. Több azonosító megadásához használjon vesszőket az azonosítók elválasztásához. A folyamat PID-jének megkereséséhez írja be a következőt Get-Process
:
Típus: | Int32[] |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | False |
-InputObject
Megadja a leállítandó folyamatobjektumokat. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat.
Típus: | Process[] |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | False |
-Name
A leállítandó folyamatok folyamatneveit adja meg. Több folyamatnevet is beírhat vesszővel elválasztva, vagy használhat helyettesítő karaktereket.
Típus: | String[] |
Aliasok: | ProcessName |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | True |
-PassThru
A folyamatot jelképező objektumot ad vissza. Ez a parancsmag alapértelmezés szerint nem hoz létre kimenetet.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-WhatIf
Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.
Típus: | SwitchParameter |
Aliasok: | wi |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
A parancsmaghoz folyamatobjektumot is csövezhet.
Kimenetek
None
Ez a parancsmag alapértelmezés szerint nem ad vissza kimenetet.
A PassThru paraméter használatakor ez a parancsmag egy folyamatobjektumot ad vissza, amely a leállított folyamatot jelöli.
Jegyzetek
A PowerShell a következő aliasokat Stop-Process
tartalmazza:
- Minden platform:
spps
- Windows:
kill
A Windows Management Instrumentation (WMI) Win32_Process objektum tulajdonságait és módszereit a Windows PowerShellben is használhatja. További információkért lásd Get-CimInstance
a WMI SDK-t.
- A folyamatok leállításakor felismerheti, hogy a folyamatok leállítása leállítja a folyamatot és a folyamattól függő szolgáltatásokat. Szélsőséges esetben a folyamat leállítása leállítja a Windowst.