Anasayfa Makale Microsoft PowerShell Nedir, Ne İşe Yarar?

Microsoft PowerShell Nedir, Ne İşe Yarar?

Microsoft PowerShell hakkında bilmeniz gereken her şeyi bu makalemizde bulabilirsiniz.

PowerShell, 10 yıl önce Microsoft tarafından geliştirildi. Amaç klasik komut satırı arayüzünün gücünü, yerel ya da uzaktaki Windows ve Linux sistemlerini kontrol etmeye yarayacak yönetim arayüzü ekleyerek artırmaktı. Component Object Model (COM), Windows Management Instrumentation (WMI) ve Common Information Model (CIM) arayüz standartları ile birlikte PowerShell, yönetim bileşenlerinin üreticiden ya da dağıtımcıdan bağımsız olarak uygulanmasını sağladı.

PowerShell Nedir?

Microsoft PowerShell 1.0’ı 14 Kasım 2006’da yayınlandığında, DOS tabanlı komut istemi arayüzünün eksikliklerini gidermeyi amaçlıyordu. Özellikle karmaşık script dilleri kullanarak nesnelerin yönetimi konusunda eksiklik 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 hale getirebilecek güçlü ve esnek bir yapıda olan bu arayüz ortaya çıkarıldı.

Her sürüm güncellemesinde PowerShell, Active Directory ve Exchange Server da dahil olmak üzere, daha çok kaynağı yönetme yeteneği kazandı ve işlevselliği artırmak için yeni modüller kazandı.

PowerShell 6.0’ın yayımlanmasıyla Microsoft, PowerShell’i açık kaynak kodlu hale getirdi ve Linux-Unix tabanlı işletim sistemleri için erişime sundu. Şu an hala geliştirilen PowerShell’in alpha sürümleri Microsoft’un Github adresinden indirilebiliyor.

PowerShell, nesneleri yönetmeye yarayan birçok cmdlet’e (tek görevli komut satırı aracı) sahip. Aşağıda bazılarından bahsedeceğiz ama çok daha fazla sayıda cmdlet olduğunu da göz önünde bulundurmanız gerekiyor.

  • 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 mail 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. Özellikle modüller için hangi komutların mevcut olduğunu görmek açısından faydalıdır.
  • Set-Variable (cmdlet): Bu cmdlet, yeniden kullanmak istediğiniz kodları, çoklu nesneleri, dosya yollarını depolamaya yarayan değişkenleri oluşturur.
  • Invoke-Command (cmdlet): Bu cmdlet, genelde yerel bilgisayardan çalıştırılıp uzaktaki bilgisayarlarda komutları çalıştırmak için kullanılır.
  • Pipeline (|): PowerShell’in özelliklerinden birisi | karakteri ile komutları birbirine bağlamasıdır. Böylelikle PowerShell, komutun ilk kısmını yürütüyor ve elde edilen sonucu ikinci komutu yürütmek için kullanıyor. Daha fazla bağlı adım varsa tüm işlemler tamamlanana kadar bu döngü devam ediyor. Ö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 yada daha fazla kez yürütülebiliyor.
  • 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.

Sistem Gereksinimleri:

  • PowerShell 6.0’a özel sistem gereksinimleri: Ubuntu 14.04 ve sonrası (Uygun .deb paketi ile birlikte), CentOS 7 (Uygun .rpm paketi ile birlikte), Arch Linux (AUR’de yer alan uygun sürümle birlikte), macOS 10.11 ve sonrası (Uygun .pkg yükleyici ile birlikte)
  • Windows 10’un yeni sürümleri, PowerShell 5.1 yüklü olarak geliyor.
  • Windows 10’un eski sürümleri veya Windows Server 2016, PowerShell 5.0 yüklü olarak geliyor.
  • Windows 8.1 veya Windows Server 2012 R2 için gerekli tüm bileşenler mevcut olup Windows Management Framework 5.0 yüklendiği zaman PowerShell de 5.0 sürümüne yükseltiliyor.
  • Windows 7 SP1, Windows Server 2008 R2 SP1 için öncelikle Windows Management Framework 4.0’ın yüklenmesi gerekiyor. Daha sonra WMF’nin 5.0 sürümü yüklenip PowerShell 5.0 sürümüne yükseltilebilir.
  • Windows .NET Framework 4.5 (Mutlaka gerekiyor.)
  • Opsiyonel olarak geniş bant internet bağlantısı

PowerShell Neden Önemlidir?

Windows 95’in piyasaya sürülmesinden sonra Microsoft, IBM uyumlu bilgisayarlarda yürütülebilmesi için Windows’u DOS üzerinde çalıştırdı. Windows 95’ten sonra MS-DOS, bazı eski uygulamalar halen kullandığı için varlığını sürdürdü.

MS-DOS, aynı zamanda uzaktan bağlantı yöntemleriyle ve görevleri otomatik yürütecek şekilde kodlanmış scriptler aracılığıyla cihazları yönetmek için de kullanıldı. Ancak MS-DOS 1981 yılında ortaya çıktı ve PowerShell 2006’da sunulana kadar Microsoft rakiplerinin aksine komut istemi arayüzünde büyük bir yenilik yapmadı. 25 yıllık aradan sonra PowerShell çok daha fazlasını sunacak şekilde geliştirildi.

Microsoft PowerShell’i, komut satırını ve .NET framework üzerine kurulu script dilini bir araya getirerek, yönetim arayüzü olarak geliştirdi. Böylelikle sadece donanımın, yazılımın ve ağ bileşenlerinin yönetileceği değil, geliştiricilerin script yeteneklerini kullanabilecekleri bir platform ortaya çıktı.

Programın açık kaynak kodlu olarak sunulmasıyla kullanılabilirliği oldukça arttı. Örneğin macOS kullanarak Windows sunucularını yönetmek ve Windows tabanlı cihazlardan Linux sunucularını takip etmek mümkün hale geldi. Sunduğu bu esneklikle PowerShell çok önemli bir yere sahip.

PowerShell Hangi Kullanıcılara Yönelik?

PowerShell, daha yaratıcı olmak isteyen son kullanıcılardan, cihazları yerel ve uzaktan kolaylıkla kontrol etmek için güçlü bir çözüm arayan sistem yöneticilerine kadar herkese hitap ediyor. Donanım ve yazılım katmanları arasında kendi uygulamalarını yazan geliştiriciler de PowerShell’den faydalanıyor.

PowerShell, yeni komutları, syntax ve mantık sırası ile birçok şeyi öğrenmeyi gerektirse de Microsoft, PowerShell’in kurumsal uygulamalarla entegre olması için gerekli modülleri sağlıyor. Açık kaynak kodlu hale gelmesiyle de her sistem yöneticisine hitap etmeye başladı.

Exchange gibi uygulamalarda yönetim görevlerini gerçekleştirmek için bir arayüz olsa da, mail sistemi yöneticileri tam kapasiteye ulaşmak için PowerShell kullanmak zorunda.

PowerShell Alternatifleri Nelerdir?

Bash (Unix Shell), Z Shell, Linux SSH, PuTTY, OpenSSH, Cygwin, Windows komut istemi, GNOME Terminal, Cmder ve Pash, PowerShell alternatifleri olarak görülüyor. Alternatiflerin kullanım alanlarına göre avantajları ve dezavantajları var.

PowerShell’i Nerden İndirebilirsiniz?

PowerShell, Windows 7’den sonraki tüm Windows sürümleriyle birlikte geliyor. Windows Server açısındansa 2008 R2’den sonraki sürümler için entegrasyon sağlanmış.

Daha eski Windows sürümleri de PowerShell çalıştırabilir, ancak opsiyonel olarak indirilip kurulması gerekir. PowerShell’i yüklemek ya da daha yeni sürümlerine yükseltmek için öncelikle Windows Management Framework (WMF) yükleyicisi indirilmelidir. WMF sürüm numarası ile yüklenecek PowerShell sürüm numarası uyumludur. Microsoft’un sitesinden WMF 5.0’ı indirmek mümkün.

OS X ve Linux içinse PowerShell’in son sürümünü bu bağlantıdan indirip sisteminize kurmanız gerekiyor.