Stop-Process (Microsoft.PowerShell.Management)


Stop-Process

Modül:
Microsoft.PowerShell.Management

Çalışan bir veya daha fazla işlemi durdurur.

Sözdizimi

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>]

Tanım

Stop-Process cmdlet'i bir 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 Stop-Process'e iletebilirsiniz. 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 Yönetici olarak çalıştır seçeneğini kullanarak PowerShell'i başlatmanız gerekir. Ayrıca Onayla parametresini belirtmediğiniz sürece sizden onay istenmez.

Örnekler

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

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

Bu komut, bilgisayardaki Not Defteri işleminin tüm örneklerini durdurur. Notepad'in her örneği kendi sürecinde çalışır. Tamamı aynı ada sahip olan işlemleri belirtmek için Ad parametresini kullanır. Aynı işlemleri durdurmak için Id parametresini kullanacak olsaydınız, her Not Defteri örneğinin işlem kimliklerini listelemeniz gerekirdi.

Örnek 2: Bir iş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. Onayla parametresi, PowerShell'i işlemi durdurmadan önce sizi uyarmaya yönlendirir. Bilgi istemi, kimliğinin yanı sıra işlem adını da içerdiğinden, bu en iyi uygulamadır. PassThru parametresi, işlem nesnesini görüntülenmek üzere biçimlendiriciye iletir. Bu parametre olmasaydı, İşlemi Durdur komutundan sonra görüntü oluşmazdı.

Örnek 3: Bir işlemi durdurun ve durduğunu tespit edin

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

Bu komut dizisi Calc işlemini başlatır ve durdurur, ardından duran işlemleri algılar.

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

İkinci komut Get-Process'i kullanır, Calc işlemini temsil eden bir nesne alır ve ardından onu $p değişkeninde saklar.

Üçüncü komut Calc işlemini durdurur. Nesneyi Stop-Process'e iletmek için InputObject parametresini kullanır.

Son komut, bilgisayardaki çalışmakta olan ancak şu anda durdurulmuş olan tüm işlemleri alır. Bilgisayardaki tüm işlemleri almak için Get-Process'i kullanır. İşlem hattı operatörü (|), sonuçları HasExited özelliğinin değerinin $olduğu durumları seçen Where-Object cmdlet'ine iletir. Doğru. HasExited, süreç nesnelerinin yalnızca bir özelliğidir. Tüm özellikleri bulmak için Get-Process | Üye Ol.

Ö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 Get-Process'i kullanır. Bir ardışık düzen operatörü, işlemi durdurmak için Stop-Process'e gönderir. Örnek çıktıda gösterildiği gibi, bu işlem yalnızca bilgisayardaki Yönetici grubunun bir üyesi tarafından durdurulabildiğinden, ilk komut Erişim reddedildi iletisiyle başarısız olur.

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

İkinci komut, istemi bastırmak için Zorla seçeneğini belirtir. Sonuç olarak işlem onaylanmadan durdurulur.

Parametreler

-Confirm

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

Tip :

SwitchParameter

Takma adlar:

cf

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

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.

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

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Id

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

Tip :

Int32[]

Konum:

0

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

False

-InputObject

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

Tip :

İşlem[]

Konum:

0

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

False

-Name

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

Tip :

String[]

Takma adlar:

ProcessName

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

True

-PassThru

Süreci temsil eden bir nesne döndürür. Varsayılan olarak bu cmdlet herhangi bir çıktı oluşturmaz.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-WhatIf

Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.

Tip :

SwitchParameter

Takma adlar:

wi

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

Girişler

Süreç

Bir işlem nesnesini bu cmdlet'e aktarabilirsiniz.

Çıkışlar

Yok

Varsayılan olarak bu cmdlet hiçbir çıktı döndürmez.

Süreç

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

Notlar

PowerShell, Stop-Process için aşağıdaki takma adları içerir:

  • Tüm platformlar:

      spps
  • Windows:

      kill

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

  • Süreçleri durdururken, bir süreci durdurmanın süreci ve sürece bağlı hizmetleri durdurabileceğini unutmayın. Olağanüstü bir durumda, bir işlemi durdurmak Windows'u durdurabilir.

İlgili makaleler