Month: March 2012

Powershell Do-Until ile Servis Kontrolü

Do – Until yapısı ile oluşturduğum bu script tamamen sonsuz döngü mantığı üzerine kurulmuştur. 0 değerinin 1 değerinden yüksek olması ile son bulacak bir kod kümesidir aslında. Bu koşul hiçbir zaman sağlanmayacağı için sonsuz döngü demek yanlış olmayacaktır.

Önce kullanıcıdan izlenmesi istenen servisin adını girmesi beklenir. Bu noktadan sonra Event kaynağı oluşturulur. Bu işlem 1 kereye mahsus yapılmaktadır. Asıl log yazdırma işlemi Write-Eventlog ile yapılacaktır.

Kullanıcının girdiği servisin konumuna bakılarak, servis STOPPED konumunda olduğu anda Event Log yazdırılır ve Script sona erer.

Bu metodu kendinize göre uyarlayarak bir çok gündelik işinizi otomatikleştirebilirsiniz.

Kolaylıklar,

BakiOnur

Powershell ile Active Directory Üzerinde Toplu Kullanıcı Oluşturma

Bazen Active Directory üzerinde bir çırpıda birden fazla kullanıcı hesabı oluşturulması gerekir. Örneğin İnsan Kaynakları departmanları belirli periyotlarla BT ekiplerine excel, Csv vb. formatlarda yeni işe başlayan kullanıcı bilgilerini verirler. İşte bu noktada bu dosya içerisindeki kullanıcıların yeni hesaplarının oluşturulması oldukça zaman alır. Bu işi süper hızlı bir şekilde yapabilmek için Powershell’den faydalanabilirsiniz.

Bunun için öncelikle Powershell konsolu açılarak aşağıdaki komut ile Powershell’in Active Directory komutlarından anlaması sağanır. Bunun yerine arzu edilirse doğrudan Active Directory Powershell Module (Administrative Tools altında) çalıştırılabilir.

Import-Module ActiveDirectory

Aşağıdaki örnekte bir CSV dosyası yer alıyor. Bu dosya içerisinde yeni işe başlayan kullanıcıların bilgileri bulunuyor.

Yukarıdaki dosyayı öncelikle Import-Csv ile powershell’e tanıtmak gerekir.

Bunun akabinde yukarıdaki küçük çaplı script ile istediğimizi yerine getirebiliriz. Bütün script aşağıdaki şekilde oluşmalıdır.

Import-module activedirectory

Import-Csv c:\kullanici.csv | foreach{

$parola=$_.parola | convertto-securestring -asplaintext -force

new-aduser -name $_.isim -surname $_.soyisim -samaccountname $_.samaccountname -path $_.ou -company $_.sirket -Accountpassword $parola

enable-adaccount $_.isim

}

Teşekkürler,

BakiOnur

Powershell içinden anlık döviz kur bilgilerini alın

Powershell ile anlık döviz kur bilgilerini alabileceğiniz kullanışlı bir script daha. Doviz.ps1 ismiyle kaydedip powershell icinden .\doviz.ps1 komutu ile çalıştırabilirsiniz.

function doviz(){

$iekur = new-object -com “InternetExplorer.Application”

$iekur.navigate(“http://kur.doviz.com/serbest-piyasa/amerikan-dolari”)

start-sleep -s 3

$sonucdolar=$iekur.Document.title

$iekur.navigate(“http://kur.doviz.com/serbest-piyasa/euro”)

start-sleep -s 3

$sonuceuro=$iekur.Document.title

$iekur.navigate(“http://kur.doviz.com/serbest-piyasa/sterlin”)

start-sleep -s 3

$sonucsterlin=$iekur.Document.title

write-host $sonucdolar -foregroundcolor “Green”    

write-host $sonuceuro -foregroundcolor “Green”    

write-host $sonucsterlin -foregroundcolor “Green”    

$iekur.quit()

}

Doviz

 

Teşekkürler,

BakiOnur

Bırakın Powershell Konuşsun!

Powershell’in COM obje desteği sayesinde aşağıdaki gibi küçük bir uygulama yapılabilir. Böylece istenilen herhangi bir data sistem içerisinde bulunan SPVOICE API’si aracılığıyla okutulabilir. Bunun için aşağıdaki gibi bir fonksiyonel script hazırlayıp bunu ses.ps1 olarak kaydedip Powershell içerisinden çağırabilirsiniz.

function ses{

$text=read-host “Lütfen sistem tarafından okunmasını istediğiniz yazıyı yazınız”

$ses=New-Object -com sapi.spvoice

$ses.rate=-2

write-host $text -foregroundcolor “green”

$ses.speak($text)

}

ses

cls

Bu script çalıştırıldığında kullanıcıdan istediği yazıyı girmesi istenir. Bunun akabinde ekrana kişinin yazdığı yazı yeşil renkle yazdırılırken arka planda sistem tarafından okutulur.

Bu uygulamayı dinamik datalarınız için de kullanabilirsiniz. Örnek olarak sistemin IP adresini bu yöntemle okutabilirsiniz. Bu uygulamanın daha gelişmiş şeklini özellikle görme engelli kişilerin faydalanabilmesi gibi bir amaçla hazırlıyor olacağım.

Teşekkürler,

BakiOnur