search
Categories
Sponsors
VirtualMetric Hyper-V Monitoring, Hyper-V Reporting
Archive
Blogroll

Badges
MCSE
Community

Cozumpark Bilisim Portali
Posted in Windows Powershell, Windows Server | No Comment | 9,604 views | 18/01/2009 13:11

Bir önceki uygulamada, Powershell ile bir sayının karekökünün nasıl bulunabildiğini göstermiştim. Fakat şimdiki bölümde, for döngüsünü yayınladığım karekök bulma uygulamasını, PS’de yani Powershell’de nasıl çalıştırabileceğimize göz atacağız. Powershell’in genel olarak uygulama uzantısı .ps1’dir. Notepad içine karekök bulma uygulamasına ait kodları yapıştırır, sonrasında uzantısı .ps1 olacak şekilde kaydederseniz, bundan sonra .ps1 uzantılı uygulamayı ps’ye atmak kalır sadece. Ben az önceki uygulamanın adını karekok.ps1 yapıyorum. Şimdi Powershell üzerinde uygulamayı çalıştırmaya çalışalım. Uygulama çalıştırmak için karekok.ps1 dosyasının olduğu dizine geçiyoruz. Sonrasında PS’de .\karekok.ps1 yazıyoruz. Fakat bir hata mı aldık? PS üzerinde daha önce bir işlem yapmadıysanız, hatta PS’yi ilk açışınız ise bu uygulamayı çalıştırmaya çalışırken karşınıza kırmızı hata yazılarının olduğu bir ekran çıkacaktır. Yalnız bu bize, kodlarda hata olduğunu söylemliyor. Biraz daha dikkatli inceleyelim hatayı.

powershell1

Hatayı daha iyi inceleyebilmemiz için ekran çıktısını aşağıya yazıyorum.

File C:\Users\Administrator\Desktop\karekok.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see “get-help about_signing” for more details.
At line:1 char:13

Hatada bize execution of scripts is disabled diyor. Gerçekten de böyle bir durum söz konusu. Normalde Powershell’de default olarak “ExecutionPolicy” Restricted haldedir. PS’de Get-ExecutionPolicy komutunu çalıştırdığınızda “Restricted” yazdığını göreceksiniz. Bu yüzden imzasız olan uygulamalar, PS üzerinde çalışmamaktadır. Şimdi bizimki gibi uygulamaların da çalışabilmesi için bu sınırlamayı biraz değiştirelim. Bunun için PS’de aşağıdaki komutu yazalım.

1
Set-ExecutionPolicy RemoteSigned

Bu komut sonrasında Get-ExecutionPolicy yaptığımızda, artık Restricted yerine RemoteSigned yazdığını göreceksiniz. Ekran çıktısına bakalım:

powershell2

Şimdi bir sorunumuz kalmamış gibi görünüyor. RemoteSigned nedir, ne işe yarar, faydaları zararları nedir derseniz, bu konuya da bir sonraki makalede değineceğim. Çünkü şuanki konuda amacımız, uygulamamızı çalıştırmak. Bundan sonra yapmanız gereken, tekrar .\karekok.ps1 demek ve programın size doğru karekökü verdiğini izlemek. RemoteSigned ile bundan sonraki uygulamalarımızı çalıştırabilir hale geleceğiz. Bir sorun ile karşılaşırsanız sormaktan çekinmeyin. Kolay gelsin.

Not: Bazen aşağıdaki gibi yapmanız gerekebilir:

Set-ExecutionPolicy Unrestricted

Böylece kendi yazdığınız tüm Powershell scriptleri sorunsuz bir şekilde çalışacaktır.