Microsoft PowerShell Nedir, Ne İşe Yarar?

PowerShell, Microsoft tarafından geliştirildi ve 2006 yılında piyasaya sürüldü. Geliştirilmesinin ardında yatan amaçsa klasik komut satırı arayüzünün gücünü artırmaktı. Gelin; Microsoft PowerShell nedir, nasıl kullanılır ve ne işe yarar gibi soruların cevaplarını meraklıları için yanıtlayalım.

Günümüzde, grafik kullanıcı arayüzü (GUI) gibi standart yöntemlerden, komut satırı arayüzlerine (CLI) kadar bilgisayar sistemleri ile etkileşimde bulunmanın ve yönetmenin birkaç yolu vardır. Bunlar ayrıca uygulama programlama arayüzü (API) çağrıları ve web tabanlı yönetim arayüzleri gibi ek yöntemlerle desteklenmektedir.

Doğan ihtiyaçları karşılamak için günümüzde yaygın olarak kullanılan bir CLI yöntemi de Microsoft Windows PowerShell'dir. PowerShell'in temellerini, nasıl kullanılabileceğini, ne işe yaradığını bu yazımızın ardından net bir şekilde kavrayacaksınız. Şimdi, Microsoft PowerShell’i tüm ana hatlarıyla anlattığımız yazımıza geçelim.

Microsoft PowerShell nedir?

Windows PowerShell, standart tabanlı uzaklaştırma protokollerini kullanarak hem bağımsız hem de ağa bağlı, cmdlet adı verilen küçük programları kullanan, komut dosyası dili özelliklerine sahip etkileşimli bir nesne yönelimli komut ortamıdır.

Microsoft, PowerShell'in ilk sürümünü yayınladığında, DOS tabanlı komut istemi arayüzünün eksikliklerini gidermeyi amaçlıyordu. Karmaşık script dilleriyle yazılan nesnelerin yönetimi konusunda sıkıntılar vardı. Bu yüzden Microsoft temelli yazılımlar için özel bir script dili olarak görev yapacak ve yönetim görevlerini otomatik hâle getirebilecek güçlü ve esnek bir yapıda olan PowerShell ortaya atıldı.

Microsoft Powershell ne işe yarar?

Yazımızın buraya kadarki kısmında PowerShell hakkında temel bilgileri öğrendiniz. Şimdi bu temel bilgilerle neler yapabileceğiniz konusunda sizlere fikirler verelim ve ardından bu bilgilerle keşfe çıkın. 

PowerShell, BT uzmanlarının, Windows işletim sisteminin ve Windows sunucularında çalışan diğer uygulamaların yöntemlerini denetlemesine ve otomatik hâle gelmesine yardımcı olur. Ayrıca yöneticilerin COM ve WMI’ya tam erişim yoluyla uzak ve yerel Windows sistemindeki görevlerini yerine getirmesini sağlar.

Birden çok komutun birleştirilerek ve komut dosyaları yazılarak görevlerin daha verimli gerçekleşmesine olanak sağlar. Sistem yöneticisinin aktif dizin kullanıcısı oluşturduğunda, bunu sadece basit bir PowerShell cmdlet yardımıyla yapabilir.

Microsoft PowerShell nasıl kullanılır?

  • Adım #1: Windows arama çubuğuna "Windows PowerShell" yazın.
    • Dilerseniz Çalıştır'a girerek "powershell" yazarak da aynı araca ulaşabilirsiniz.
  • Adım #2: Çıkan komut çubuğuna yazacağımız cmdt'ler ile dilediğiniz işlemi gerçekleştirebilirsiniz.
    • Kodlar için bir sonraki başlığa göz atın.

PowerShell'in birçok kullanımı vardır. PowerShell hem etkileşimli bir dil hem de bir komut dosyası aracı olarak işlev görür. Her iki kullanım durumu da sistemlerin daha kolay yönetilmesine ve BT uzmanları için büyük bir esnekliğe izin verir.

PowerShell'in en önemli avantajlarından biri, başka bir sisteme uzaktan bağlanma yeteneğidir. Yönetici, uzakta olan bir sunucuya bağlanmak ve komutları doğrudan o sunucu üzerinde çalışıyormuş gibi çalıştırmak için uzak bir PowerShell oturumu kullanabilir. Uzaktan yönetilebilir ve BT uzmanlarına zaman kazandırır. 

PowerShell komut dosyaları oluşturma söz konusu olduğunda, tutarlı görevleri ve adımları art arda gerçekleştirme yeteneği BT yöneticileri için büyük bir avantajdır. PowerShell, sanal bir ortamda yeni bir sunucunun tamamlanmasından Microsoft 365'teki yeni posta kutularının yapılandırılmasına ve aradaki birçok ek işleve kadar birçok görevi otomatikleştirir.

Microsoft PowerShell kodları:

  • Active Directory (Modül): Bu modül, bilgisayarlar, kullanıcılar, gruplar ve hesaplarda depolanan yetkiler gibi Active Directory nesnelerinin yönetilmesini sağlıyor.
  • Exchange Server (Modül): Bu modül, Exchange Server’ların tam yönetimini sağlıyor. Modülün içerisinde birçok ek cmdlet bulunuyor ve bunlar Exchange e-posta sunucusuna tam destek sağlıyor.
  • Get-Help (cmdlet): Bu cmdlet, syntax kullanımları ve komutlarla ilgili faydalı bilgileri sağlıyor.
  • Get-Command (cmdlet): Yürütüldüğü zaman mevcut olan komutların listesini sağlar. Hangi komutların olduğunu görmenizi sağlar.
  • Set-Variable (cmdlet): Tekrardan kullanmak istediğiniz kodları, çoklu nesneleri, dosya yollarını depolamaya yarayan değişkenleri oluşturan cmdlet’tir.
  • Invoke-Command (cmdlet): Genelde yerel bilgisayardan çalıştırılıp uzaktaki bilgisayarların komutları ile çalışmak için kullanılan cmdlet.
  • Pipeline (|): PowerShell’in özelliklerinden birisi | karakteri ile komutları birbirine bağlamasıdır. Özellikle kullanıcı adı oluşturma, kullanıcıyı bir güvenlik grubuna eklemek ya da varsayılan parolayı sıfırlamak gibi çok adımlı işlemlerde işe yarıyor.
  • Function ({}): Bu işaretlerin ({}) arasına alınan komut fonksiyonları bir ya da daha fazla kez işlenebiliyor.
  • Out-File (cmdlet): PowerShell’in komut çıktısını bir dosyaya aktarmayı sağlar. Örneğin kullanıcı hesaplarının listesi alınıp daha sonra kullanılmak üzere bir metin dosyasına kaydedilebilir.
  • Import-Module (cmdlet):  Daha fazla modülü PowerShell yapısına katmayı sağlar.

Microsoft PowerShell hangi kullanıcılara yöneliktir?

PowerShell, yaratıcılık üzerine düşünen kullanıcıların, uzaktan erişimle işlerini kontrol etmek için çözüm arayan sistem yöneticilerinin, donanım ve yazılım arasında kendi uygulamalarını geliştiren yazılımcıların PowerShell’i sıklıkla kullandığını söyleyebiliriz.

PowerShell, yeni komutlar, syntax ve mantık sırası ile birçok şeyi içinde barındırsa ve karmaşık gözükse bile Microsoft, PowerShell’in kurumsal uygulamalarla entegre olması için gerekli araçları sağlıyor. Açık kaynak kodlu olması nedeniyle de tüm sistem yöneticilerinin ilgi alanına girdi.

PowerShell'deki komutların bir diğer adı cmdlet’tir. Her bir cmdlet’i ayrı ayrı kullanabilirsiniz. PowerShell, bilgisayardaki dosya sistemlerine erişmenize aracılık eder. PowerShell sağlayıcıları, kayıt defteri ve sertifika depoları gibi diğer veri depolarına, dosya sistemine erişirken size kolaylık sağlar.

Düzenlenmiş kodlar veya betikleri kullanarak kendi cmdlet ve işlev modüllerinizi oluşturabilirsiniz. PowerShell ayrıca, UNIX kabuk betiklerine ve cmd.exe toplu iş dosyalarına benzer betikleri destekler. Aşağıda bazı cmdlet ve açıklamaları yer almaktadır.

Microsoft PowerShell’in avantajları ve dezavantajları nelerdir?

Kullanımda olan her şeyde olduğu gibi PowerShell’in de birçok avantaj ve dezavantajı bulunmaktadır. Öğrenme kolaylığı, nesne tabanlı oluşu, VBScript ve cmd.exe ile karşılaştırıldığında daha fazla işlev sağlaması, değişken türü belirtme zorunluluğu olmaması, arka plan işleri (background job) kavramının olması gibi durumlar programın kullanıcılara sağladığı avantajlardır.

.NET Framework gerekliliği, text tabanlı çalışması, güvenlik riskleri olması, uzak bağlantı için web sunucu çalıştırma gerekliliği programın dezavantaj olarak sayabileceğimiz özellikleridir. Özellikle bilgisayarlara uzaktan bağlanırken oluşan risk nedeniyle bu işi yapan insanlara fazla bir güven vermemektedir. PowerShell’in dezavantajlarının genel anlamıyla güvenlikle ilgili olduğunu söyleyebiliriz.

Microsoft PowerShell’i nasıl indirebilirim?

PowerShell, Windows 7’den sonraki tüm Windows sürümlerinde kendiliğinden olan bir uygulamadır. Windows Server açısından, 2008 R2’den sonraki sürümler için entegrasyon sağlanmış durumdadır. Eski Windows sürümlerinde de PowerShell çalıştırılabilir ancak indirilmesi ve kurulumunun yapılması gerekmektedir.

PowerShell’i yüklemek için Windows Management Framework (WMF) aracına sahip olunmalıdır. WMF’nin sürüm numarasıyla yüklenecek PowerShell sürüm numarası uyumludur. Windows Management Framework 5.0 versiyonunu buradan indirebilirsiniz. PowerShell’in son sürümünü ise buradan indirip bilgisayarınıza kurabilirsiniz.

Microsoft Powershell programına alternatif programlar hangileridir?

  • Bash (Unix Shell)
  • Z Shell
  • Linux SSH
  • PuTTY
  • OpenSSH
  • Cygwin
  • GNOME Terminal
  • Cmder
  • Pash