İşlemi Durdur - PowerShell kullanarak İşlemleri Sonlandırın
İşlemi Durdurma PowerShell cmdlet'i, çalışıyorsa işlemi durdurur. İşlemi Durdurmak için işlem adını, işlem kimliğini (PID) veya işlem nesnesini kullanarak çalıştırıyorsanız işlemi sonlandırabilirsiniz.
Çoğu zaman, yanıt vermeyi durduran bir uygulamamız olur ve bir süre bekledikten sonra bile program yanıt vermiyor mesajını görüntülemeye devam eder.
İşlemi seçmek ve sonlandırmak için görev yöneticisini kullanarak çalıştırıyorsanız, işlemi sonlandırmanın yolları vardır.
Diğer bir seçenek de, bir işlemi PID'ye veya İşlem adına göre sonlandırmak veya çalışıyorsa işlemi sonlandırmak için PowerShell Durdurma İşlemi cmdlet'ini kullanmaktır.
Bu yazımda yerel sistem üzerinde işlem adı, işlem kimliği kullanılarak PowerShell'de çalışıyorsa işlemin nasıl durdurulacağını anlatacağım.
İşlemi Durdurma PowerShell cmdlet'i
Söz Dizimi -
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>]Parametreler:
Kimlik - İşlem Kimliği (PID), birden fazla kimliği ayırmak için virgül kullanın
Ad - İşlem Adı, birden fazla işlem adını ayırmak için virgül kullanın veya işlem adını almak için joker karakterler kullanın
InputObject - değişken veya komut tarafından döndürülen işlem nesnesi.
PassThru - Stop-Process tarafından oluşturulan nesneyi ardışık düzen üzerinden başka bir komuta iletin
Zorla - anında onay almadan süreci zorla durdurun
Onayla - Komutun yürütülmesi için onay istemi.
Not: PowerShell İşlemi Durdurma cmdlet'i yalnızca yerel bilgisayarda çalışan işlemleri durdurur.
PowerShell'deki İşlemi Durdur'u örneklerle anlayalım.
PowerShell kullanarak isme göre çalıştırılıyorsa İşlemi Sonlandır
Aşağıdaki İşlemi Durdur komutunu kullanarak yerel bilgisayarda işlem adına göre çalıştırıyorsanız, işlemin tüm örneklerini sonlandırabilirsiniz.
Stop-Process -Name "notepad"Komutun üstünde, işlem adını not defteri olarak belirtmek için Ad parametresini kullanın.
Stop-Process, bir not defteri uygulamasının tüm örneklerini öldürür.
Not defteri uygulamasının her örneğinin kendi PID'si vardır. Aynı ada sahip olduğu için bir not defteri uygulamasının tüm örneklerini durduracaktır.
Harika İpucu: PowerShell'de dosyayı kodlayan base64 nasıl kullanılır?
PowerShell kullanarak PID tarafından çalıştırılıyorsa İşlemi Durdurun
Aşağıda verildiği gibi Durdurma İşlemi'ni kullanarak işlemi işlem kimliğine göre sonlandırabilirsiniz.
Stop-Process -Id 38592 -Confirm -PassThruYukarıdaki PowerShell komutunda, İşlemi Durdurma, işlem PID'si tarafından belirtilen işlemi sonlandırmak için PID'yi kullanır.
Eylemin gerçekleştirilip gerçekleştirilmeyeceğinin onaylanması için parametre istemini onaylayın. Evet veya Tümüne Evet'i seçerseniz, çalışan bir işlem durdurulacaktır.
Onaylandığında, işlemi sonlandıracak ve aşağıdaki çıktıyı yazdıracaktır.
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
247 15 3360 15164 0.27 38592 1 notepad İşlem Nesnesini Kullanarak İşlemi Durdurma
Bir komut tarafından döndürülen veya bir değişkende saklanan bir işlem nesnesini kullanarak işlemi durdurmak istiyorsanız, bir nesneyi İşlemi Durdur cmdlet'ine iletmek için GirişObject parametresini kullanın.
Bir işlem almak ve işlem nesnesini bir değişkende saklamak için Get-Process cmdlet'ini kullanın, aşağıdaki komutu çalıştırın
# Get Process and store object in variable
$ProcessObject = Get-Process -Name notepad
# Pass object to Stop-Process using InputObject parameter
Stop-Process -InputObject $ProcessObject
# Check if process stopped or not
Get-Process | Where-Object {$_.HasExited}Yukarıdaki PowerShell komutunda, İşlemi Durdur PowerShell cmdlet'i işlemi sonlandırır ve sonraki komut, sonlandırılan işlemin hala mevcut olup olmadığını kontrol eder.
Mevcut Kullanıcıya Ait Olmayan İşlemi Durdur
Mevcut kullanıcıya ait olmayan işlemleri durdurmak istiyorsanız PowerShell’i Yönetici olarak çalıştır seçeneğiyle açmanız gerekecektir.
Zorla kullanıldığında parametre işlemi sonlandıracaktır.
Yönetici seçeneği olmadan mevcut kullanıcıya ait olmayan işlemi sonlandırmaya çalışırsanız, şu şekilde bir mesaj görüntülenecektir:
Stop-Process : Cannot stop process 'notepad(1353)' because of the following error: Access is denied
At line:1 char:3Geçerli kullanıcıya ait olmayan işlemi durdurmak için aşağıdaki komut dosyasını kullanın
Get-Process -Name notepad | Stop-Process -Forceİlk komut, Get-Process cmdlet'ini kullanarak işlem not defterini alır ve bunu ikinci komuta iletir.
İkinci komut, Force parametresini kullanarak süreç nesnesini zorla sonlandırmak için İşlemi Durdur cmdlet'ini kullanır.
Not: İşlemi durdurmak için PowerShell'i yönetici olarak çalıştırın. Geçerli kullanıcıya ait olmayan işlemi yalnızca yönetici grup üyeleri durdurabilir.
Harika İpucu: PowerShell'de kullanıcı adı nasıl işlenir?
Çözüm
Yukarıdaki makalenin, ad veya işlem kimliği (PID) ile belirtilen işlemi sonlandırmak veya geçerli kullanıcıya ait olmayan işlemi sonlandırmak için İşlemi Durdur PowerShell cmdlet'ini kullanmanıza yardımcı olacağını umuyorum.
PowerShell Active Directory komutları ve PowerShell temelleri hakkında daha fazla konuyu ShellGeek ana sayfasında bulabilirsiniz.
