PowerShell WMI ve CIM Yapıları kullanılarak Remote Bilgisayarlara Müdahale
Selamlar arkadaşlar bu makalemde sizlere PowerShell ile uzaktaki makinelara müdahale etmeyi göstereceğim.

Yukarıda resimde bulunan kodlar sayesinde uzak bilgisayarda bulunan Spooler servisinin durdurma ve başlatma gibi işlemler yapacağız.
> $Bilgisayarlar =
Get-ADComputer –Filter *
// AD içerisinde bulunan cihazların
adlarını değişkenimize atadık.
> Get-WmiObject
–Query “Select * From Win32_Service Where Name = ‘Spooler’” –ComputerName
$Bilgisayarlar.Name | fl PSComputerName,Name,State,Status
//Kodu sayesinde Spooler servisi
hakkında belirli bilgisayar adlarından bilgi
almak istediğimizi ve Gelen bilgilerden Bilgisayar
adını, Servis adını, Durumunu ve Çalışıp Çalışmadığı
bilgilerini istedik.

> Get-WmiObject
Win32_Service | Get-Member
// Komutu yardımıyla Win32_Service Class’ında
bulunan Method ve Property değerlerini Get-Member ile görebiliyoruz. Biz durdurma ve başlatma yapacağımızdan dolayı StartService
ve StopService bizim için yeterli
olacaktır.

> Get-WmiObject
–Query “Select * From Win32_Service Where Name = ‘Spooler’” –ComputerName
$Bilgisayarlar.Name | Invoke-WmiMethod –Name StopService
// Kodumunuzun sonuna | (Pipe)
ile birlikte Invoke-WmiMethod yazıp –Name parametresi ile Property’i (StopService , Get-Memberdan
bakmıştık.) yazmanız durumunda uzak
bilgisayarda o özelliği çalıştıracaktır. Daha sonra tekrar servisleri
sorgulayarak State durumlarından durduklarını görebilirsiniz.

Bu sorguları ve işlemleri CIM ile yapmak istiyorsanız bir kaç parametre değiştirmelisiniz. Get-CimInstance ile Servisi sorgulayabilir ve Invoke-CimMethod –MethodName ile de uzak bilgisayarda komutu çalıştırabilirsiniz.
Bir sonraki makalemde görüşmek üzere kolaylıklar dilerim.