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