PowerShell Where Koşulu İle Basit ve Gelişmiş Filtreleme

Selamlar arkadaşlar bu makalemde sizlere Where kullanarak Basit ve Gelişmiş olarak filtreleme yaparken Karşılaştırma Operatörlerinden de nasıl yardım alacağımızı göstereceğim.

> Get-Service | Where Status –EQ “Running”
Bu kod yardımı ile Get-Service içerisinde Status durumu Running olan servisleri göreceğiz.

> Get-Service | where Name –Like “*user*”
Bu kod yardımı ile ise Name alanı içerisinde bulunan değerlerde user geçen servisleri listeleyecektir.

Bu şekilde basit olarak filtreleme yaparbilirsiniz.

Eğer birden fazla kriter ile Filtreleme yapmak istiyorsanız Gelişmiş Filtrelemeyi kullanmalısınız.

> Get-Service | Where-Object –FilterScript {$_.Status –EQ “Running”}
Bu kod yardımı ile Get-Service ile alınan Servis bilgileri içerisinde StatusleriRunning” olan Servisleri listeler.

> Get-Service | Where {$_.Status –EQ “Running”}
Bu kod ise yukarıdaki kodun kısa yazılımıdır. Aslında Where-Object kodunun Alias’ı Where ve hatta sadece ? (Soru İşareti)’dir. Burada önemli olan konu $_. İşaretidir. Bu işaret ile Pipe işaretinden önceki komut sonucunda gelen tüm nesnelerin Status kolonundaki değerlere satır satır bakacağı anlamına gelmektedir. Bu işaret yerine $PSItem değişkenini de kullanarak yapabilirsiniz.

> Get-Service | ? {$_.Name –like “Wi*” –and $_.Status –eq “Running”}
Bu kod yardımı ile Get-Service den alınan bilgilerde Name alanında Wi* ile başlayan değerleri ve Status alanında durumu Running olan değerleri satır satır arayıp sonucu ekrana yazacaktır. Ayrıca karıştırmamak için bir altta gördüğünüz üzere ($_.Name –like “Wi*”) olarak her bir kodu ayrı bir paranteze alabilirsiniz. –and yerine –or kullanarak ve yerine ya da kullanmış olur ve sorgularınızı bu şekilde genişletebilirsiniz.

Bir sonraki makalemde görüşmek üzere kolaylıklar dilerim.

Bir Cevap Yazın