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
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.
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.
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.
Ş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.
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 komutlarıyla audit çalışması olsa ekleseniz çok iyi olur
selam windows 10 kilit ekranında şifre girme yerineki fotoğrafı gif yapabiliyor muyuz?
Umarım faydalı olur, Selamlar
Teşekkürler geçtiğimiz günlerde arkadaş ile bayağı kafa yormuştuk. İşimize yarayacak.