Powershell de Nesneler nasıl filtrelenir


Powershell de Nesneler nasıl filtrelenir
Bir komut çıktısında sadece işimize yarayan kısımlarını almak bize zaman kazandıracaktır, Powershell bize bu imkanı sunmaktadır. Where-Object, PowerShell'de en sık kullanılan cmdlet'ler den biridir ve muhtemelen


verileri filtrelemek için en çok kullanılanıdır. Tak ve Çalıştır , genellikle klavyeler ve fareler , USB bellekler gibi bilgisayar çevre aygıtlarını ifade ederken, dahili donanımı tanımlamak için de kullanılabilir. Örneğin, bir video kartı veya sabit sürücü bir Tak ve Çalıştır aygıtı olabilir. PnP, bir bilgisayar sistemiyle bağlanır bağlanmaz çalışan aygıtları tanımlamak için kullanılan akılda kalıcı bir kısaltmadır. Bir powershell komutu ile tüm PNP aygıtlarını listeletmek isterseniz aşağıdaki komutu kulanmanız gerekir.

Get-PnpDevice

Kod çalıştırıldığında size uzun bir liste verecektir. gel gelelim mesela sadece USB den çalışan ve O anda takılı olan aygıtların bir listesini görmek istiyorsanız komut çıktısına Filtre uygulamanız gerekecektir.

Powershell ile tak çıkar aygıtlarını listeletin

Bana sadece Class sütununda DiskDrive olanları versin istiyorsak aşağıdaki komutu kullanırız.
Get-Command | Where-Object {$_.CommandType -ne 'cmdlet'}

Get-PnpDevice | where {$_.Class -eq 'DiskDrive'}

Komut dosyasının kendisi üç bileşenden oluşur: verilere filtre uygulanacak özellik (CommandType), bir karşılaştırma operatörü (-eq) ve filtrenin temel alınacağı değer (cmdlet). Komut çıktısını aşağıda görüyorsunuz, liste çok daha sade hale geldi.

Powershellde süzgeç uygulandı

PowerShell aşağıdakiler gibi karşılaştırma operatörlerini destekler (Aşağıdakiler tamamı değildir en çok kullanılanlar ele alınmıştır)

-ne (eşit değildir)
-lt (küçüktür)
-le (küçüktür veya eşittir)
-gt (büyüktür)
-ge (büyüktür veya eşittir)
-like (joker karakter karşılaştırması gibi)
-notlike (gibi değil - joker karakter karşılaştırması)
-contains (belirtilen değeri içerir)
-notcontains (belirtilen değeri içermez)

Aslında iki kriteri sağlayan verileri de listeletebiliriz mesela hem Class sütununda "DiskDrive" yazssın hemde InstanceId sütununda "USBSTOR" bulunsun , bunun için ise aşağıdaki kodu kullanıyoruz.

Get-PnpDevice | where {$_.Class -eq 'DiskDrive' -and $_.InstanceId -like '*USBSTOR*'}

Komut uygulandığında aşağıdaki çıktıyı alırız.

Powershellde verileri süz

Şimdi sıra geldi Nokta atışına ; Status : Ok , Class : DiskDrive , InstanceID : USBSTOR olsun , bunu da sadece takılı bulunan bir USB bellek karşılayacaktır. Aşağıdaki kodlardan birini kullanabilirsiniz.

Get-PnpDevice | where {$_.Class -eq 'DiskDrive' -and $_.Status -eq 'Ok' -and $_.InstanceId -like '*USBSTOR*'}
Get-PnpDevice | where {$_.Class -eq 'DiskDrive' -and $_.Present -eq $True -and $_.InstanceId -like '*USBSTOR*'}

Komut uygulandığında bize aşağıdaki çıktıyı verecektir.

Powershell de takılı USB aygıtın bul

Böylece bu verileri masaüstüne çıktı şeklinde alabilir veya komut neticesi elde edilen sonuca devre dışı bırakma gibi komutlar uygulayabilirsiniz.

- Powershell Komutları ile bir aygıtı devre dışı bırakın Burada

- Powershell ile format nasıl atılır Burada

- Powershell Yetki sorunlarını çözelim Burada

- Powershell ile windows özelliklerini açıp kapatmak Burada

- Powershell Komutu ile zip dosyası oluşturalım Burada

- Powershell ile windows defendere dışlama eklemek Burada

- PowerShell scriptlerini Admin olarak çalıştıralım Burada

- Powershell komutları ile dosya veya Klasör silmek Burada

- Powershell scriptlerini .exe yapalım Burada

- Sağ tuşa Powershelli burada aç özelliği ekleyelim Burada

- Powershell scriptlerini kısayol ile çalıştıralım Burada


3 Yorum Var
  1. Avatar for İsimsiz 
  2. Avatar for Velociraptor
  3. Avatar for Kadir

Yorum Ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha