Stop-Process

Bir veya daha fazla çalışan işlemi durdurur.

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

Cmdlet bir Stop-Process veya daha fazla çalışan işlemi durdurur. İşlem adına veya işlem kimliğine (PID) göre bir işlem belirtebilir veya bir işlem nesnesini öğesine Stop-Processgeçirebilirsiniz. Stop-Process yalnızca yerel bilgisayarda çalışan işlemlerde çalışır.

Windows Vista ve Windows işletim sisteminin sonraki sürümlerinde, geçerli kullanıcıya ait olmayan bir işlemi durdurmak için PowerShell'i Yönetici olarak çalıştır seçeneğini kullanarak başlatmanız gerekir. Ayrıca Confirm parametresini belirtmediğiniz sürece sizden onay istenmez.

Örnekler

Örnek 1: İşlemin tüm örneklerini durdurma

PS C:\> Stop-Process -Name "notepad"

Bu komut, bilgisayardaki Not Defteri işleminin tüm örneklerini durdurur. Not Defteri her örneği kendi işleminde çalışır. İşlemleri belirtmek için Name parametresini kullanır ve bunların tümü aynı ada sahiptir. Aynı işlemleri durdurmak için Id parametresini kullanırsanız, Not Defteri her örneğinin işlem kimliklerini listelemeniz gerekir.

Örnek 2: İşlemin belirli bir örneğini durdurma

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

Bu komut, Not Defteri işleminin belirli bir örneğini durdurur. İşlemi tanımlamak için 3952 işlem kimliğini kullanır. Confirm parametresi, işlemi durdurmadan önce PowerShell'i sizden istemeye yönlendirir. İstem, kimliğine ek olarak işlem adını da içerdiğinden, bu en iyi yöntemdir. PassThru parametresi, işlem nesnesini görüntüleme için biçimlendiriciye geçirir. Bu parametre olmadan, bir Stop-Process komut sonrasında görüntü görüntülenmez.

Örnek 3: Bir işlemi durdurma ve durdurulduğunu algılama

calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}

Bu komut dizisi işlemi başlatır ve durdurur Calc ve ardından durdurulan işlemleri algılar.

İlk komut hesap makinesinin bir örneğini başlatır.

İkinci komut kullanır Get-Process , işlemi temsil Calc eden bir nesne alır ve bunu değişkende $p depolar.

Üçüncü komut işlemi durdurur Calc . nesnesini Stop-Processöğesine geçirmek için InputObject parametresini kullanır.

Son komut, çalışmakta olan ancak artık durdurulan bilgisayardaki tüm işlemleri alır. Bilgisayardaki tüm işlemleri almak için kullanır Get-Process . İşlem hattı işleci (|), sonuçları, HasExited özelliğinin Where-Object değerinin $True olanları seçen cmdlet'ine geçirir. HasExited , işlem nesnelerinin yalnızca bir özelliğidir. Tüm özellikleri bulmak için yazın Get-Process | Get-Member.

Örnek 4: Geçerli kullanıcıya ait olmayan bir işlemi durdurma

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>

Bu komutlar, kullanıcıya ait olmayan bir işlemi durdurmak için Zorla kullanmanın etkisini gösterir.

İlk komut, Lsass işlemini almak için kullanır Get-Process . İşlem hattı işleci, işlemi durdurmak için adresine Stop-Process gönderir. Örnek çıktıda gösterildiği gibi, ilk komut erişim reddedildi iletisiyle başarısız olur çünkü bu işlem yalnızca bilgisayardaki Yönetici istrator grubunun bir üyesi tarafından durdurulabilir.

PowerShell yönetici olarak çalıştır seçeneği kullanılarak açıldığında ve komut yinelendiğinde PowerShell sizden onay ister.

İkinci komut, İstemi gizlemeye zorla seçeneğini belirtir. Sonuç olarak, işlem onay olmadan durdurulur.

Parametreler

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

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

-Force

Onay istemeden belirtilen işlemleri durdurur. Varsayılan olarak, Stop-Process geçerli kullanıcıya ait olmayan herhangi bir işlemi durdurmadan önce onay ister.

İşlemin sahibini bulmak için cmdlet'ini Get-CimInstance kullanarak işlemi temsil eden bir Win32_Process nesnesi alın ve ardından nesnenin GetOwner yöntemini kullanın.

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

-Id

Durdurulacak işlemlerin işlem kimliklerini belirtir. Birden çok kimlik belirtmek için, kimlikleri ayırmak için virgül kullanın. Bir işlemin PID'sini bulmak için yazın Get-Process.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

Durdurulacak işlem nesnelerini belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın.

Type:Process[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Durdurulacak işlemlerin işlem adlarını belirtir. Virgülle ayırarak birden çok işlem adı yazabilir veya joker karakterler kullanabilirsiniz.

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

-PassThru

İşlemi temsil eden bir nesne döndürür. Varsayılan olarak, bu cmdlet herhangi bir çıkış oluşturmaz.

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

-WhatIf

Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.

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

Girişler

Process

Bir işlem nesnesini bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

None

Varsayılan olarak, bu cmdlet çıkış döndürmez.

Process

PassThru parametresini kullandığınızda, bu cmdlet durdurulan işlemi temsil eden bir İşlem nesnesi döndürür.

Notlar

PowerShell için aşağıdaki diğer adları Stop-Processiçerir:

  • Tüm platformlar:
    • spps
  • Windows:
    • kill

Windows PowerShell'de Windows Yönetim Araçları (WMI) Win32_Process nesnesinin özelliklerini ve yöntemlerini de kullanabilirsiniz. Daha fazla bilgi için bkz Get-CimInstance . ve WMI SDK'sı.

  • İşlemleri durdururken, bir işlemi durdurmanın işleme ve işleme bağlı hizmetleri durdurabileceğini unutmayın. Aşırı bir durumda, bir işlemin durdurulması Windows'u durdurabilir.