Month: December 2011

Powershell Yazı Dizisi – I

Bir IT profesyoneli olarak her gün defalarca yaptığımız görevler hiç şüphesiz bir süre sonra büyük bir külfet olabiliyor. Ne mutlu ki; Microsoft bunun farkında. Microsoft’un son senelerde bizlerle tanıştırdığı bir çok uygulamanın arkasında scripting desteği var. Bunun da en büyük temsilcisi elbette Microsoft Powershell. Belki de ilk olarak Exchange Server 2007 kurulumunda bir ön gereksinim olarak tanıdık Powershell’i. Şimdilerde ise Windows ile birlikte gelen ve her noktada işimizi kolaylaştıran kuvvetli bir araç. Alıştığımız komut satırının aksine tamamen dinamik bir araç Powershell. Exchange Server’den Hyper-V’ye, System Center ürün ailesinden üçüncü parti uygulamalara kadar her aşamada büyük bir yardımcıdan bahsediyoruz aslında. O halde bu geniş yazı dizimizde Powershell’i nasıl ele alacağız buna bir bakalım…

Öncelikle bu sihirli komut satırı biriminin yeteneklerini tanıyacağız. Sonrasında, farklı modüller ile genişletilebilen ve çok gelişmiş bir program yazmaya kadar uzanabilen yapısını ele alacağız. İsterseniz ilk bakışta “Powershell ile neler yapabilirim?” sorusuna başlıklar halinde değinelim. İşte bir nefeste Powershell ile yapılabileceklerden bazıları:

  • Command Prompt ile yapılabileceklerin tamamı (cmd.exe)
  • Full WMI desteği sayesinde bütün isletim sistemi katmanlarına erişim
  • COM ve ADO obje desteği ile spesifik görevler
  • API desteği ve Full .NET entegrasyonu
  • Bütün günlük yönetimsel görevlerin yerine getirilmesi (Active Directory Obje Yönetimi, Sertifika Servisleri Yönetimi, Yedekleme Operasyonları, Uzak Yönetim Faaliyetleri…)

    Gelin başlayalım!

    Windows Powershell şu anda 2.0 versiyonu ile kullanımda. Örneklerimiz bu versiyon üzerinden devam ediyor olacak. Öncelikle Powershell’in Windows 7 ve Windows Server 2008 R2 ile varsayılan olarak geldiğini söylemekte fayda var. Windows Vista ve Windows Server 2008 kullanıyorsanız ise bu özelliği aktif etmelisiniz. Program Ekle/Kaldır ile Powershell’i yükleyebilirsiniz. Unutmadan; Windows Server 2008 ve Windows Vista içerisindeki sürüm 2.0 değil. Powershell 2.0 sürümünü aşağıdaki linkten indirip kurabilirsiniz.

    http://support.microsoft.com/kb/968930

    Windows 7 ve Windows Server 2008 R2 kullaniciları dışındaki kullanicilar yukarıdaki yüklemeyi yaptıktan sonra Start Menu’ye powershell yazdığımızda aşağıdaki bileşenleri görüyoruz.


    Bu bileşenleri dizimiz içerisinde gerektiğinde ele alıyor olacağız.

    Adettendir, ilk olarak meşhur “Merhaba Dünya” ile başlayalım!


    Powershell ile yapılabileceklere minik birkaç örnek vererek başlamak ve sonrasında ana başlıklar altında derine inmek istiyorum.

    Powershell’e ne kadar verirseniz o kadar geri alırsınız demek yanlis olmaz. Çünkü o oldukça akıllıdır ve sizi anlar

    Matematik’te oldukça iyidir!


    İstediğiniz kadar esnek olabilirsiniz!


    Gördüğünüz gibi sayılarla arası iyi olan Powershell, içerisinde entegre olan fonksiyonlarla neredeyse tüm söylediklerinizden anlar.

    Biraz daha örnek…


    Evet gerçekten oldukça zevkli bir ortam oldugunu söylemek istiyorum. Bir uygulama geliştirici nasıl tamamen hayal gücü ile sınırlıysa işte Powershell ortamı içerisinde de sınır sizin hayal gücünüz!

    Tamam peki, madem sınırları olmayan bir ortam burası, o halde biraz daha spesifik girelim. Soru-cevap şeklinde Powershell’i biraz daha tanıyalım.

  1. Powershell’de kullanacağım bütün komutları nasıl görebilirim?

    Get-command

  2. Spesifik bir komut hakkında nasıl yardım alabilirim? Örnek get-process komutu hakkında yardım için ne yapmalıyım?

    Get-help get-process -full

  3. Powershell ile komutları hatasız olarak nasıl yazabilirim?

    Tab tuşu ile komutları tamamlayabilirsiniz.

  4. Powershell’de kullanabileceğim kısayollar var mı?

    F7 tuşu ile komut geçmi?ini görüntüleyebilirsiniz.

  5. Bir komuta ait alt komutları ve metodları nasıl görüntüleyebilirim? Örnek get-process ile birlikte kullanabileceğim alt komutlar nelerdir?

    Get-process | get-member

  6. Bir komut yazdığımda çıktıyı detayıyla görmek için ne yapmalıyım? Örnek get-process

    Get-process | FL

  7. Powershell ile bir dosyanın içeriğini nasıl görüntüleyebilirim? Örnek onur.txt

    Get-content onur.txt

  8. Bir klasör içerisindeki öğelerin tamamını (alt klasörler ve öğeler ile birlikte) nasıl listeleyebilirim?

    Get-childitem -recurse

  9. Bir satırda birden fazla komut çalıştırabilmek için ne yapmalıyım?

    Get-process ; write-host “merhaba dünya” (komutlar arasında ; işareti kullanılmalıdır)

  10. Powershell içerisinde yazdığım komutları bir script dosyası haline getirip bir seferde çalıştırabilir miyim?

    Text dosyasına komutları yazıp .ps1 uzantısıyla kaydedip powershell içerisinde çalıştırabilirsiniz. Scriptlerin Powershell içerisinde çalışabilmesi için aşağıdaki komutun bir kereliğine çalıştırlması gerekir.

    Set-ExecutionPolicy unrestricted

    10 soruda Powershell hakkında minik fikirler vermek istedim. Her dizide 10 soru-cevap ile konuyu ve örnekleri zenginleştirmeye çalışacağım.

    Sonraki dizilerde Powershell’in derinliklerine inmek ve spesifik görevleri yerine getirebilmek üzere şimdilik hoşçakalın!

    BakiOnur