30.10.2025

Powershell hata durumu eylemi

Çoğu powershell cmdlet'inin -ErrorAction parametresi vardır, bir hata durumunda yapılması istenen eylem hakkında. Örneğin dosyanın olmaması durumunda hata vermeden sessizce devam etmesi için aşağıdaki gibi kullanım olabilir.

Get-Content -Path D:\dosyalar\hata.log -ErrorAction SilentlyContinue

Ya da try-catch bloğu içinde her hatanın yakalanmasını sağlamak için Stop kullanmak isteyebiliriz.


try {
    $user = Get-ADUser -Filter "Name -like '$name*'" -ErrorAction Stop
    ...
}
catch {
    ...
}

Ama her cmdlet için bu parametreyi seçmemek için $ErrorActionPreference değişkenini kullanabiliriz. Varsayılan değer Continue'dir. Atanan değerler tırnal veya çift tırnak içinde verilmelidir.

$ErrorActionPreference="Stop"

Genel olarak Preference Variables kategorisinde bazı değişkenlerin arasında yer alır. Şu değerlerden birini alabilir:

Break: Bir hata olduğunda veya bir istisna tetiklendiğinde debugger'a gir.
Continue: (Varsayılan) Hata mesajını görüntüle ve devam et.
Inquire: Hata mesajını görüntüle ve devam etmek isteyip istemediğini kullanıcıya sor.
SilentlyContinue: Hata mesajı da gösterme, devam et.
Stop: Hatayı görüntüle ve dur. Stop değeri ayrıca ActionPreferenceStopException  nesnesi de oluşturarak hata akışına gönderir.
---

https://www.meziantou.net/stop-the-script-when-an-error-occurs-in-powershell.htm
https://www.scriptwizards.net/powershell-erroractionpreference-explained 

Hiç yorum yok: