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 Confirm paramétert.
Példák
1. példa: Folyamat összes példányának leállítása
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 Name paramétert használja a folyamatok megadásához, amelyek mindegyike ugyanazzal a névvel rendelkezik. Ha a Azonosító paramétert használná ugyanazon folyamatok leállításához, a Jegyzettömb egyes példányainak folyamatazonosítóit kell listáznia.
2. példa: Folyamat adott példányának leállítása
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 a PowerShellt a folyamat leállítása előtt kéri. 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 megjelenítendő formázónak. E paraméter nélkül nem jelenik meg egy Stop-Process
parancs.
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 Calc
folyamatot, majd észleli a leállított folyamatokat.
Az első parancs elindítja a számológép egy példányát.
A második parancs Get-Process
lekéri a Calc
folyamatot jelképező objektumot, majd a $p
változóban tárolja.
A harmadik parancs leállítja a Calc
folyamatot. Az InputObject paraméter használatával adja át az objektumot Stop-Process
.
Az utolsó parancs lekéri a számítógépen futó, de most leállított összes folyamatot.
Get-Process
használ az összes folyamat lekéréséhez a számítógépen. A folyamatkezelő (|
) átadja az eredményeket a Where-Object
parancsmagnak, amely kiválasztja azokat, amelyekben a HasExited tulajdonság értéke $True.
HasExited csak egy tulajdonsága a folyamatobjektumoknak. Az összes tulajdonság megkereséséhez írja be a 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
Ezek a parancsok azt mutatják, hogy a Kényszerítse a nem a felhasználó tulajdonában lévő folyamat leállítására.
Az első parancs Get-Process
használ az Lsass-folyamat lekéréséhez. A folyamatüzemeltető elküldi a folyamatot a Stop-Process
, hogy leállítsák. 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 kényszeríti a a kérés letiltására. Ennek eredményeképpen a folyamat megerősítés nélkül leáll.
Paraméterek
-Confirm
Megerősíté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 Stop-Process
megerősítést kér, mielőtt leállítja az aktuális felhasználó tulajdonában nem lévő folyamatokat.
A folyamat tulajdonosának megkereséséhez használja a Get-CimInstance
parancsmagot a folyamatnak megfelelő Win32_Process objektum lekéréséhez, 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 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
Megjeleníti, mi történne, ha a parancsmag futna. 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 Folyamat objektumot ad vissza, amely a leállított folyamatot jelöli.
Jegyzetek
A PowerShell a következő aliasokat tartalmazza Stop-Process
:
- 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ó: Get-CimInstance
és a WMI SDK.
- 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.