Selamlar Arkadaşlar bu makalemde sizlere PowerShell’de bir komutu PipeLine yardımı ile arka planda ByValue ve ByPropertyName teknikleri ile nasıl çalıştırılabildiğini anlatacağım.
Normal şartlarda PowerShell’de bir komut ile elde ettiğimiz Collection’ı PipeLine’dan sonraki komut ile üzerlerinde işlem yaparız. Bu işlemleri yaparken bazen komutun çalışmadığını görürüz bunun nedeni ise PipeLine’dan önceki alandan elde edilen Collection’ın türünden dolayıdır.
Yukarıda yazılmış olan kodları inceleyelim.
> Get-Service
Spooler,MpsSvc | Stop-Service
Bu komut sayesinde Get-Service ile Spooler ve MpsSvc komutlarının Collection’ı
oluşturulur ve Stop-Service Kod’u
ile durdulur. Bu bir komut sonucu oluşturulan Collection verisidir. Bu kod ise ByPropertyName kullanımına örnektir.
> “Spooler” ,
“MpsSvc” | Start-Service
“Spooler” , “MpsSvc” değerleri ile Start-Service komutu çalıştırıldığında
bunların bir Service olduğu
anlaşılır ve Başlatma işlemi
yapılır. Bu kod ByValue kullanımına
örnektir.
Komutun bu özelliğini nereden öğrendiniz derseniz en son çalıştırmış olduğumuz Start-Service komutun Help’i yardımıyla bunu öğrenebilirsiniz.
> Get-Help
Start-Service –Full
Bu komut çalıştırılır ve –Name
özelliğini kullandığımızdan dolayı –Name
<String[]> alanına geliriz. Burada Accept PipeLine input kısmında ki ByPropertyName ve ByValue
değerleri ile kod satırında Collection
ya da Değer gelmesi ile kodun
başarılı bir şekilde çalışabileceğini göstermektedir.
ByPropertyName = Bir kod sonucunda Kolon başlığı olan bir Collection dizisine verilen addır.
ByValue = Sadece girilen değer ile işlem yapılabilir anlamına gelmektedir.
> Get-Process
Win32Calc,Notepad | Stop-Process
Komut yardımıyla Process Collection’nında
bulunan işlemleri Stop-Process kodu
ile kapatıyoruz.
> “Win32Calc” ,
“Notepad” | Stop-Process
Daha sonra aynı işlemi ByValue ile
yapmaya çalıştığımızda Hata veriyor.
> Get-Help
Stop-Process –Full
Bunun nedeni yukarıdaki kodu çalıştırdığınızda –Name <String[]> alanında bulunan Accept PipeLine Input alanında yazmaktadır. İşlem sadece ByPropertyName ile çalışmaktadır.
Bir sonraki makalemde görüşmek üzere kolaylıklar dilerim.