Megosztás a következőn keresztül:


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

Process

A parancsmaghoz folyamatobjektumot is csövezhet.

Kimenetek

None

Ez a parancsmag alapértelmezés szerint nem ad vissza kimenetet.

Process

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.