İlginizi Çekebilir
  1. Ana Sayfa
  2. Microsoft PowerShell
  3. Windows PowerShell – Enumerating Object – Devam – Bölüm 8

Windows PowerShell – Enumerating Object – Devam – Bölüm 8

Windows – Enumerating Object – Devam – Bölüm 8. Bu bölümde datanın Pipeline üzerinden nasıl Bind edildiği konusu üzerinde duracağız. Muhtemelen bundan sonraki makale de aynı konunun devamı niteliğinde olacak.

Powershell mimarisinde pipe objeleri bir cmdlet’ten diğerine kolaylıkla transfer edilebilir. Bu işleme Pipeline parameter Binding denir.

Bu işlem yapılırken temelde iki teknik kullanılır.

  • ByValue : Her zaman ilk olarak denenen Binding metodudur.
  • ByPropertyname : Eğer ByValue metodu hata alırsa denenecek olan metodudur.

 

ByValue Tekniği ile Data Aktarılması

Pipeline üzerinden data transferi yapılırken kullanılan ilk tekniktir.

Bu konuyu anlatırken bir örnek üzerinde ilerlemekte fayda var.

Get-Service komutu aşağıdaki gibi çalıştırıldığında string olarak verilen servis isimlerinin Get-Service cmdlet’i ile direk Bind olduğu görülür.


Resim-1

Komut aşağıdaki şekildeki gibi incelendiğinde Pipeline içerisinde string olarak verilen servis isimlerinin şekildeki gibi görünmez olan –Name Property’si ile Bind olduğu görülmektedir.


Resim-2

-Name isimli Property’nin Pipeline’dan data kabul ettiği tekniği görüntülemek için aşağıdaki komutu çalıştıralım.


Resim-3

Şekildeki numaralı bölümler incelenecek olursa,

1 numaralı bölüm Get-Service komutunun –Name parametresine String array olarak Pipeline üzerinden obje kabul ettiğini gösterir.

2 numaralı bölümdeki “Accept Pipeline input” Pipeline üzerinden obje kabul edilip edilmeyeceğini, edilirse hangi teknikle edileceğini gösterir.

Burada Get-Service cmdlet’i için iki teknikte kullanılabilir durumda. (ByValue ve PyPropertyName)

Get-Process cmdlet’inin Name Property’si için aynı komut çalıştırıldığında Teknik olarak ByValue kullanılmadığı görünür.


Resim-4

Bu durumda Get-Process komutuna Pipeline üzerinden direkt olarak String değer verildiğinde komut aşağıdaki gibi hata verecektir.


Resim-5

Bunun nedeni Get-process cmdlet’inin Pipeline üzerinden sadece PropertyName olarak değer kabul etmesidir. Yani Pipeline üzerinden Name Property’sine sahip bir obje gelmelidir. Get-Process cmdlet’i ancak gelen bu objenin Name Property’si ile Bind olabilir.

Özetle belli komutlar ByValue tekniğini kullanıp Pipeline üzerinden direkt olarak değer kabul edebilirler. Etmeyenlerde olabilir. Bunlar direkt olarak gelecek obje üzerinde aynı isimde Property ararlar.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Microsoft DMOC

TAGs : powershell, , , , , , , , ,

Yorum Yap

Yazar Hakkında

Sakarya doğumludur. İstanbul Üniversitesi’nde Matematik/Fen ve Teknoloji öğretmenliğini bitirmiştir. Yüksek lisansını Sakarya Üniversitesi Bilgisayar Mühendisliği’nde yapmıştır. Bilişim sektöründe çeşitli firmalarda sistem ve network sorumlusu olarak çalışmıştır. Bazı kurumlarda sistem ve network üzerine uzmanlık eğitimleri vermiştir. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. Microsoft System Center ürünleri, Powershell ve Azure teknolojileri ile ilgilenmektedir. 2016 yılında Microsoft tarafından Cloud and Datacenter alanında MVP unvanını almıştır.

Yorum Yap