PowerShell ile Windows İşlemlerini Yönetme


PowerShell, yerel veya uzak bir bilgisayardaki işlemleri yönetmek için birçok özelliğe sahiptir. PowerShell'i kullanarak, çalışan işlemlerin bir listesini alabilir, kapatılan bir işlemi askıya alabilir, bir işlemi Windows başlığına göre bulabilir, yeni bir işlemi gizli veya etkileşimli modda çalıştırabilirsiniz, vb.

Windows 10'da kullanılabilir işlem yönetimi cmdlet'lerinin listesini aşağıdaki gibi görüntüleyebilirsiniz:

Get-Command -Noun Process

  • Get-Process - çalışan Windows işlemlerinin bir listesini alın;

  • Start-Process - bir süreç/program başlatın;

  • Stop-Process - süreci zorla durdurun (öldürün);

  • Debug-Process - bir süreçte hata ayıklayın;

  • Bekle-İşlemi - işlem bitene kadar bekleyin.

Get-Process: Çalışan İşlemlerin Listesini Alma

Get-Process cmdlet'i, yerel bir bilgisayarda çalışan işlemlerin bir listesini görüntüler.

Varsayılan olarak, çalışan işlemlerin şu özellikleri görüntülenir:

  • Tutucular - bu işlem tarafından açılan girdi-çıktı dosya tanıtıcılarının (işlemcileri) sayısı;

  • NPM(K) - disk belleği olmayan bir bellektir (disk belleği olmayan havuz). Bu, diskte asla disk belleğine alınmayan işlem verilerinin boyutudur (KB olarak);

  • PM(K) - belleğe alınabilecek işlem belleğinin boyutu;

  • WS(K) - işlem (Çalışma Kümesi) tarafından kullanılan fiziksel belleğin boyutu (KB cinsinden);

  • CPU(s) - işlem tarafından kullanılan bir CPU süresi (tüm CPU'lardaki süre sayılır);

  • Kimlik - benzersiz işlem tanımlayıcısı;

  • SI (Oturum Kimliği) - işlem oturum kimliğidir (0, tüm oturumlar için çalışır, 1- ilk oturum açan kullanıcı için çalışır, 2 — ikinci oturum açan kullanıcı için çalışır, vb.);

  • İşlemAdı

Birden çok işlemin tüm özelliklerini listelemek için:

Get-Process cmd,excel,notep* | Format-List *

Yalnızca belirli işlem özelliklerini görüntüleyebilirsiniz, örneğin bir ad (

ProcessName

), bir başlangıç zamanı (

StartTime

), bir işlem penceresi başlığı (

MainWindowTitle

), yürütülebilir bir dosya adı (

Path

) ve bir geliştirici adı (

Company

):

Get-Process winword, notep* | Select-Object ProcessName, StartTime, MainWindowTitle, Path, Company|ft

GUI ile çalışan kullanıcı işlemlerinin bir listesini görüntülemek için (arka plan ve sistem işlemleri görüntülenmeyecektir):

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle

IncludeUserName seçeneğini kullanarak, işlemi başlatan bir kullanıcı adını (sahibi) görüntüleyebilirsiniz:

Get-Process -Name winword -IncludeUserName

kullanma

Where-Object

, işlemleri bazı kriterlere göre seçebilirsiniz. Örneğin, 300 MB'ın üzerinde RAM kullanan tüm işlemleri görüntüleyelim, bellek kullanımına göre azalan sırada sıralayalım ve bellek boyutunu KB yerine MB olarak gösterelim:

Get-Process| where-object {$_.WorkingSet -GT 300000*1024}|select processname,@{l="Used RAM(MB)"; e={$_.workingset / 1mb}} |sort "Used RAM(MB)" -Descending

Daha önce de belirttiğimiz gibi, CPU parametresindeki Get-Process cmdlet'i, belirli bir işlemin kullandığı işlemci süresini saniye cinsinden içerir. İşlemler tarafından kullanılan CPU yüzdesini görüntülemek için (Görev Yöneticisine benzer), şu işlevi kullanın:

function Get-CPUUsagePercent
{
$CPUPercent = @{
Name = 'CPUPercent'
Expression = {
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round( ($_.CPU * 100 / $TotalSec), 2)
}
}
Get-Process | Select-Object -Property Name, $CPUPercent, Description | Sort-Object -Property CPUPercent -Descending | Select-Object -First 20
}
Get-CPUUsagePercent

Askıya alınan işlemleri (yanıt vermeyen) bulmak için aşağıdaki komutu çalıştırın:

Get-Process | where-object {$_.Responding -eq $false}

İşlemi Başlat, İşlemi Durdur: PowerShell ile İşlemleri Başlatma veya Durdurma

PowerShell kullanarak yeni bir işlem başlatmak için şu komut kullanılır:

Start-Process -FilePath notepad

Yürütülebilir dosya yoksa

$env:path

ortam değişkeni, dosyanın tam yolunu belirtin:

Start-Process -FilePath 'C:\distr\app.exe'

Bir programı çalıştırabilir ve ona bağımsız değişkenler iletebilirsiniz:

Start-Process -FilePath ping -ArgumentList "-n 10 10.1.56.21"

WindowStyle seçeneğini kullanarak işlem penceresi başlangıç modunu ayarlayabilirsiniz (normal, küçültülmüş, büyütülmüş, gizli). Örneğin, bir programı büyütülmüş bir pencerede çalıştırmak ve işlem bitene kadar beklemek için şu komutu çalıştırın:

Start-Process -FilePath tracert -ArgumentList "10.1.56.21" -wait -windowstyle Maximized

Stop-Process cmdlet'ini kullanarak herhangi bir işlemi durdurabilirsiniz. Örneğin, çalışan tüm not defteri işlemlerini kapatmak için:

Stop-Process -Name notepad

Varsayılan olarak, bir işlemi sonlandırmayı onaylamanız istenmez. Belirtilen kriterleri karşılayan tüm işlemler durdurulacaktır. Durdurulan işlemleri onaylayabilmek için -Onayla seçeneğini ekleyin:

Stop-Process -Name notepad.exe -Confirm

Ayrıca, bir işlemi şu şekilde sonlandırabilirsiniz:

(Get-Process -Name cmd).Kill()

PowerShell'den, Windows Process Manager'a yanıt vermeyen tüm uygulamaları durdurmaya zorlayabilirsiniz:

Get-Process | where-object {$_.Responding -eq $false}| Stop-Process

PowerShell'i kullanarak askıya alınan veya kapatılan bir işlemi otomatik olarak yeniden başlatabilirsiniz.

PowerShell Kullanarak Uzak Bilgisayardaki İşlemleri Yönetin

kullanabilirsiniz

ComputerName

uzak bilgisayarlardaki işlemleri yönetmek için Get-Process cmdlet seçeneği (WinRM etkinleştirilmeli ve yapılandırılmalıdır).

Get-Process -ComputerName srv01, srv02, srv03| Format-Table -Property ProcessName, ID, MachineName

Uzak bilgisayarlardaki işlemleri yönetmek için yerleşik Get-Process özellikleriyle ilgileniyoruz. Şurada bulunan PowerShell Uzaktan İletişim özellikleri

Invoke-Command

Ve

Enter-PSSession

cmdlet'ler burada kapsanmaz.

Uzak bilgisayardaki bir işlemi sonlandırmak istiyorsanız, İşlemi Durdur cmdlet'inde -BilgisayarAdı parametresinin bulunmadığına dikkat edin. Uzak bilgisayardaki bir işlemi durdurmak için aşağıdaki PowerShell kodunu kullanabilirsiniz:

$RemoteProcess = Get-Process -Name cmd -ComputerName srv01
Stop-Process -InputObject $RemoteProcess

İlgili makaleler