Powershell ve WMI Objeleri

WMI, Windows Management Instrumentation, eskiden beri kullandığımız bir yapı aslında. İşletim sisteminin tüm donanım ve yazılım objeleriyle iletişim kurarak bilgi edinmesini ve yönetilmesini sağlayan bir platform olarak da düşünebiliriz. Eskiden komut satırından

Wmic

komutuyla yönetebildiğimiz bu platformu Powershell içerisinden de oldukça hızlı ve yetenekli bir biçimde yönetebiliyoruz.

WMI platform katmanlardan oluşur. En üstte Namespace, onun altında Class, onun da altın objeler yer alır.

Bir WMI Class’ı içinde neler olduğuna bakalım o halde:

  • Properties: bilgi içeren alanlar
  • Methods: Aksiyon komutları
  • Events: Olaylar

Biz yukarıdakilerin ilk ikisiyle ilgileneceğiz. Yani Property ve Method. Tıpkı herhangi bir Powershell komutunun Get-Member ile gördüğüm Property ve Member’leri gibi!

Powershell içinde WMI için

Get-WmiObject

cmdlet’i kullanılır.

Powershell ile yönetebileceğiniz tüm WMI Sınıflarını görmek için şu komutu kullanmalısınız.

Get-WmiObject -List | ? {$_.name -Match "Win32"}

Bunun çıktısı şu şekilde olur:

En sol sütundaki Win32_ ile başlayan tüm class’ları Get-WMIObject komutu ile kullanabilir ve detaylarına göz atabilirim.

Tüm bu Class ve altındaki Property, Method gibi objeleri detaylı incelemek için aşağıdaki araçları kullanabilirsiniz.

MOW WMI Explorer

https://4sysops.com/archives/free-mow-powershell-wmi-browser/

WMI Administrative Tools

http://www.microsoft.com/en-us/download/details.aspx?id=24045

SAPIEN WMI Explorer

http://www.sapien.com/software/wmiexplorer

 

Şimdi en çok kullanılan WMI Class’larıyla biraz oynayalım.

En çok kullanılan WMI Class örneklerine, her bir Class’a ait Property (bilgi komutu) ve Method (aksiyon komutu) detayını da dahil ederek göz atalım.

Get-WmiObject Win32_ComputerSystem

Bu Class’a ait Property ve Method’ları listeleyelim. Unutmadan yukarıda gördüğünüz bilgiler birer Property’dir. Aşağıdaki listede çok daha fazla Property bulunuyor. Tüm bu bilgileri de görmek için;

Get-WMIObject Win32_ComputerSystem | fl *

komutunu kullanabilirsiniz. Bu, aşağıdaki tüm Class’larda geçerlidir!

Get-WmiObject Win32_OperatingSystem

Bu Class’a ait Property ve Method’ları listeleyelim.

Get-WmiObject Win32_Service

Bu Class’a ait Property ve Method’ları listeleyelim.

Get-WmiObject Win32_BIOS

Bu Class’a ait Property ve Method’ları listeleyelim.

Not: BIOS için Method bulunmuyor

Get-WmiObject Win32_LogicalDisk

Bu Class’a ait Property ve Method’ları listeleyelim.

Get-WmiObject Win32_NetworkAdapter

Bu Class’a ait Property ve Method’ları listeleyelim.

WMI tarafına ilk bakışı yaptık. Daha farklı Class’larda görüşmek üzere.

Sorular icin bakionur@bakionur.com