0

Yazı dizisinin bu bölümünde PowerShell içerisinde Pipeline kullanımı incelenecektir.


Resim-1

Aslında PowerShell içerisinde tanımlı olmayan ancak PowerShell içerisinde Pipeline kullanımının mantığını kavrayabilmek için aşağıdaki örneği inceleyelim.


Resim-2

Adım adım süreci izleyelim.


Resim-3

Get-Araba metodu ile fabrika dâhilinde bulunan tüm arabaların listesi çekilmiştir. Dikkat ederseniz sadece Get-Araba metodu ile herhangi bir kıstas belirlenememekte, elde edilen nesneler üzerinde değişiklik gerçekleştirilememektedir. Bu sebeple | simgesi ile pipeline kullanımı başlatılmıştır.


Resim-4

İlk pipeline ile birlikte istenilen kıstas belirlenmiştir. Get-Araba metodu ile elde edilen tüm araçların içerisinden yalnızca kırmızı renge sahip olanların pipeline dışarısına çıkması, geri kalanların elenmesi sağlanmıştır.

İstenilen her değişiklik için pipeline kullanmaya devam edilebilmektedir.


Resim-5

Bir sonraki pipeline içerisine sadece Kırmızı renge sahip olan araçların geldiği unutulmamalıdır. Kırmızı araçlardan oluşan bu nesne grubunda ise, yapılacak değişiklik ile son ürün bir kez daha düzenlenebilir. Sort-Object metodunu kullanarak, sınırlandırılmış bu nesne grubunun Kilometre değerlerine göre sıralanması sağlanmıştır.

Eğer gerçek hayatta bu şekilde bir script çalıştırılabilseydi, aşağıdakine benzer çıktılar elde edilirdi;


Resim-6

Görüldüğü gibi son pipeline sonucunda sadece kırmızı renge sahip olan ve kilometre değerlerine göre azdan çoğa sıralanmış bir liste elde edilmiştir.

Buna benzer şekilde, gerçek PowerShell metotları kullanılarak, başta elde edilen nesneler üzerinde modifikasyonlar gerçekleştirilerek istenilen çıktılar elde edilebilir. Bu bölümde var olan PowerShell Scriptleri ile pipeline kullanım örnekleri üzerinde durulacaktır.

1.Örnek

Get-Service metodu ile yerel makine üzerinde çalışan tüm servislerin listesi alınabilir. Pipeline kullanımı ile tek bir script satırı kullanılarak, yalnızca çalışan servislerin listesinin alınıp, bu listenin içerisindeki nesnelerin isim sütunlarına göre alfabetik sıralanmasının sağlanması için aşağıdaki adımlar izlenmiştir.


Resim-7


Resim-8

  • Get-Service ile yerel makine üzerinde çalışan tüm servislerin listesi alınmış ancak shell, pipeline kullanımını fark ettiği için, oluşturulan nesneler çıktı olarak verilmek yerine hafızada tutulmuştur.
  • İlk pipeline kullanımı ile hafızada tutulan tüm bu servisler içerisinde yalnızca “Status” sütunu “Running” olanların seçilmesi ve oluşan yeni nesnelerin diğer pipeline içerisine aktarılması sağlanmıştır.
  • Çıktıdan önceki son pipeline kullanımı ile yalnızca “Running” durumda olan servisler “Name” sütunları dikkate alınarak alfabetik olarak dizilmiştir. Bu noktadan sonra başka bir pipeline kullanımı olmadığı için PowerShell konsolu, son düzenlenmiş hali çıktı olarak vermektedir.

2.Örnek

PowerShell ile Windows İşletim Sistemi altında yer alan işlemlerin listeleri alınabilir ve istenilen işlemler Kill komutu ile de sonlandırılabilir.

Kimi zaman arka tarafta açık olan Internet Explorer pencereleri, hafızada kapladıkları yer sebebiyle paralel ilerleyen operasyonları sıkıntıya düşürebilecek seviyeye gelebilir. Bu noktada Grafik Kullanıcı Arabirimi kullanılarak bu pencereler tek tek sonlandırılabilir. Ancak hazırlanan basit bir PowerShell komut satırı ile pipeline kullanımına dikkat edildiği takdirde, aynı işlem çok kısa zaman içerisinde gerçekleştirilebilir. Aşağıdaki örnekte adım adım benzer bir scriptin hazırlanması incelenmektedir.

Get-Process metodu kullanılarak lokal makine üzerindeki tüm işlemlerin listesi alınabilmektedir.


Resim-9

Scriptin devamında istenen, hafızaya alınan tüm işlemler içerisinde yalnızca Internet Explorer pencerelerini yöneten işlemlerin çekilmesidir. Bu noktada pipeline kullanımı sağlanarak ilk kriter belirlenir.


Resim-10


Resim-11

Görüldüğü gibi Get-Process ile hafızaya alınan ve pipeline içerisine gönderilen tüm işlemler içerisinden, “Name” sütunu “iexplore” olan işlemler ayıklanmıştır. Geriye kalan tüm diğer işlemler elenmiştir.


Resim-12

Son pipeline içerisinde bulunan nesneler, yalnızca internet explorer pencerelerinin yönetiminden sorumlu olan iexplore.exe’dir. Son olarak kıstas dâhilinde filtrelenen tüm bu işlemlerin sonlandırılması için kill metodu kullanılır.


Resim-13

Pipeline kullanımı ile birlikte yukarıdaki script çalıştırıldığında PowerShell, varolan tüm Internet Explorer pencerelerini herhangi bir uyarı çıktısı vermeden sonlandıracaktır.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

İstanbul doğumlu ve Marmara Üniversitesi mezunudur. Mezuniyet sonrası kariyerine Bilge Adam Bilişim Teknolojileri Akademisi'nde Microsoft Certificated Trainer, Consultant ve Senior Consultant pozisyonlarında ve Data Market bünyesinde Danışmanlık Birim Müdürü olarak görev yapmaya başlamıştır. Microsoft bünyesinde tüm MEA bölgesindeki ülkelerde System Center ve Infrastructure projelerinden sorumlu Consultant olarak görev yaptıktan sonra, Aralık 2012 itibari ile KoçSistem bünyesinde danışman olarak çalışmaya başlamıştır. System Center Configuration Manager ürünü için 2010 ve 2011 yıllarında MVP (Microsoft Most Valuable Professional) ünvanı alan Anıl Erduran, 2013 yılında System Center Cloud & Datacenter Management alanında MVP seçilmiş ve uzun yıllar bu ünvanı korumayı başarmıştır. Şu anda Londra'da yaşayan Anıl Erduran AWS üzerinde çalışan Microsoft iş yüklerinden sorumlu EMEA Senior Partner Solutions Architect olarak çalışmaktadır.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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