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 ö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, akkor fel kell sorolnia a Jegyzettömb egyes példányainak folyamatazonosítóit.

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 . A mintakimenetben látható módon az első parancs egy Hozzáférés megtagadva üzenettel meghiúsul, mivel ezt a folyamatot csak a Rendszergazda istrator csoport 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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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:

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:Process[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Aliases:ProcessName
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-PassThru

A folyamatot jelképező objektumot ad vissza. Ez a parancsmag alapértelmezés szerint nem hoz létre kimenetet.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 folyamatobjektumot ad vissza, amely a leállított folyamatot jelöli.

Jegyzetek

A PowerShell a következő aliasokat Stop-Processtartalmazza:

  • 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.