10.11.2025

Powershell ErrorVariable parametresi

Alışık olduğum kullanımın dışında yeni bir kullanım buldum [1].

Normalde şöyle yapardım:

Invoke-Command -Computername (Get-Content D:\pclist.txt) {
    hostname
} -ErrorAction SilentlyContinue

Bu şekilde pclist.txt dosyasında yazan bilgisayarlar üzerinde hostname komutu çalıştırılarak bilgisayar ismi yazılır. Ulaşılamayan her bir bilgisayar için hata vermesini istemediğimden -ErrorAction SilentlyContinue kullandım.

Bu komut sonucunda hangi bilgisayarlarda hata ile karşılaştığımı göremedim. Ama hangi bilgisayarlarda çalıştığını gördüm.

Buna alternatif -ErrorVariable parametresi var. Takiben bir değişken adı girerek oluşan hatalar ile ilgili bir rapor alabilirim.

Invoke-Command -Computername (Get-Content D:\pclist.txt) {
    hostname
} -ErrorAction SilentlyContinue -ErrorVariable Hatalar

foreach ($Hata in $Hatalar) {
    "$($Hata.TargetObject) Bilgisayarina Baglanilamadi!"
}

Bu da güzel.

---

[1] https://www.networkadm.in/find-out-how-long-that-pc-has-been-running-with-get-uptime/ 

Hiç yorum yok: