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


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

Yorum Ekle

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

Captcha