Windows Powershell ile Windows Servislerini Yönetmek – Part 2

Windows Servislerini yönetmek için Get-service, Set-Service, New-Service gibi komutları görmüştük. Şimdi de WMI kullanarak servis yönetimi nasıl yapılır ona bir bakalım.

WMI çok kuvvetli bir platform. Dolayısıyla Powershell içerisinden WMI kullanarak Windows içinde sayısız görevi yerine getirebilirsiniz.

Biz konumuza yani servislere geri dönelim. Öncelikle tüm servisleri listelemek için WMI şu şekilde kullanılmalıdır.

 

Ben biraz daha düzgün görünümlü olması için sadece servis ismini ve durumunu çektim.

 

Get-WMiobject komutu ile kullanabileceğim member listesi için (property, method vs.) hemen komutun sonuna Get-Member’i ekliyorum.

 

Kullanabileceğim tüm property ve method’lar çıktı. Artık komutumla birlikte kullanacağım servisimin hangi özelliklerini görüntüleyebiliyorum, hangilerini değiştirebiliyorum artık biliyorum. Property olanlar özelliklerinden her birini gösterirken, method olanlar ise verebileceğim komutları ifade ediyor. Örneğin; bir servisin ismi Name adlı Property ile ifade ediliyor. Bu property’yi çağırdığımda servisin ismini öğrenebiliyorum. Çünkü bu bir Property.

Method ile ise örneğin bir servisi durdurabiliyorum. Çünkü bir method ile bir eylem gerçekleştirilir.

Şimdi örnek olarak WinRM servisini ele alıyoruz ve önce bu servisi listeliyoruz.

 

Bir başka yolu da Filter parametresini kullanmak.

Daha basit bir şekilde yapamaz mıyız?

Evet görüldüğü gibi her 3 şekilde de WinRM servisinin listelendiğini görüyorum.

Şimdi servise ait property’lerden 2-3 tanesini çağırayım ve bir değişkene atayarak göstereyim.

Görülüğü gibi komutun tamamını parantez içine alarak sonra nokta işareti ve dilediğim Property’yi yazarak sadece o bilgiyi çekebiliyorum.

Powershell’in en önemli özelliklerinden ve en yaygın kullanım alanlarından biri de budur işte. Mesela bana acilen WinRM servisinin o anki durumu gerekiyorsa bunu bulmak için yukarıdaki komutu bie değişkene atayıp daha sonra ihtiyacın olduğunda çağırabilirim.

Artık “$winrm_servisinin_durumu” isimli değişkeni her çağırışımda aşağıdaki gibi bana WinRM servisinin o anki durumunu verecektir.

Running!

Şimdi biraz da Method’ları kullanalım ve servisin ayarlarını değiştirelim.

Servisin başlangıç tipini Manual olarak belirleyelim

Servisin başlangıç tipini Automatic olarak belirleyelim

Servisi başlatalım

Servisi durduralım

 

Konumuzun dışlında olabilir ancak komut satırından da (cmd.exe) SC komutuyla servislerinizi yönetebilirsiniz. Elbette powershell kadar esnek değil.

Sorular için bakionur@bakionur.com