Bir süredir PowerShell ile ilgili birşey yazamamıştım. IIS tarafında PowerShell ile ilgili kaynak bulunca yazmamak olmazdı :)
PowerShell, Microsoft tarafından komut satırına (cmd.exe) ve Windows Script Host'a alternatif olarak çıkartılmıştır. Windows Server 2008 işletim sistemi içerisinde yer alan PowerShell, Windows PowerShell 1.0 adıyla Windows XP, Server 2003 ve Vista için indirilebiliyor.
Windows 7 ve Windows Server 2008 R2 ile birlikte PowerShell'in 2.0 versiyonu çıkartılmıştır. Windows PowerShell 2.0 aynı şekilde Windows XP SP3, Server 2003 SP2, Vista ve Server 2008 için indirilebiliyor.
PowerShell; sadece Windows için geliştirilmemiş olup Exchange, SQL Server gibi ürünler için de komut setleri geliştirilmiş ve geliştirilmeye devam etmektedir.
IIS takımı da bu konuda boş durmayıp :) Windows PowerShell Snap-In for IIS 7 extension'ını sundular. Bu extension ile IIS sunucusunu, application pool'ları ve web sitelerini yönetmemiz mümkün
Windows Server 2008 üzerinde extension'ı kullanabilmek için öncelikle www.iis.net/download/PowerShell adresinden indirip aktif kurmamız gerekiyor.
Yaklaşık 700 KB'lık dosyayı indirip çalıştırmak kurulum için yeterli. Kurulum sonrasında Start menüsünde IIS 7.0 Extensions başlığı altına IIS PowerShell Management Console adıyla ekleniyor. IIS PowerShell Management Console'u ilk defa çalıştırdığımızda Do you want to run software from this untrusted publisher? başlıklı ekran ile karşılaşıyoruz.
PowerShell, dışarıdan gelen komutların varsayılan olarak çalıştırılmasını engelleyerek güvenlik anlamında bizlere destek oluyor. Scriptin kaynağına güveniyorsak çalıştırmak için birkaç seçeneğimiz var : "R" (Run once) ile sadece bir seferlik çalışmasına izin verebilir ve her seferinde sormasını isteyebiliriz. "A" (Alway Run) ile de sürekli olarak çalışma izni verebiliriz. Her seferinde sormaması için "A" ile devam ediyorum.
IIS PowerShell Management Console'u her çalıştırdığımızda, IIS ile ilgili istediğimiz komutları girip işlerimizi kolayca halledebilir veya komut seti olarak kaydedip otomatik çalışmalarını sağlayabiliriz. Birçok komut barındıran bu konsolda get-command -pssnapin -WebAdministration adlı komutla tüm komutları listeleyebiliriz.
Sıklıkla kullanılabilecek birkaç komutu sıralayacak olursak : Get-WebRequest, Get-WebSite, Get-WebURL, New-WebAppPool, New-WebFTPSite, New-WebSite, Remove-WebSite, Restart-WebAppPool, Stop-WebSite...
Komutlar ile ilgili detay görmek için get-help New-WebSite veya örnek bir komut görmek için get-help New-WebSite -example yazmak yeterli olacaktır.
IIS'te PowerShell kullanma ile ilgili giriş yazısını burada sonlandıralım :) Devamında gelecek olan yazılarda Windows Server 2008 R2'de bu PowerShell'i nasıl aktif edeceğimizi ve bazı komutlarla onlarla neler yapabileceğimizi anlatmaya çalışacağım.