Merhabalar
Bu makalemde WMI mimarisi, classları ve System.Management Namespace’ini inceleyeceğiz.
İşletim sistemimizde çalışan uygulamalar, servisler gibi bileşenler hakkında bilgi edinmek, yönetimlerini sağlamak, çalışmaları sırasında ortaya çıkan hataları veya perfomans problemlerini gözlemlemek ve bu hataların / problemlerin nedenlerine ulaşmak gereksinimi ile karşılaştığımızda Window Management Instrumentation (WMI) mimarisini kullanarak biraz önce bahsedilen işlemleri ve daha fazlasını kendi geliştirdiğimiz uygulamalar sayesinde kolayca yapabiliriz. WMI bütün Windows tabanlı uygulamalarda özellikle yönetimsel işlemlerin yapılmasında kullanılabilir.
WMI mimarisi üç adet katmandan oluşur. Bunlardan ilki olan Client, WMI kullanarak uygulamanın işleyişi hakkında bilgi toplama, uygulamaları konfigüre etme gibi işlemler yapan uygulamalardır. İkinci katman olan Object Manager katmanı ise Client ve Provider arasında köprü vazifesi gören ve WMI işlemlerinin gerçekleşmesi için servisler sunan katmandır. Son katman olan Provider katmanı ise Client uygulamalara veri sağlayan, Client’lar tarafından çağırılan metodları invoke eden katmandır. WMI Mimarisi daha detaylı olarak aşağıdaki şemadan incelenebilir.

.NET ile uygulamalarımızda WMI işlemlerini gerçekleştirdiğimiz namespace System.Management namespace’idir. System.Management namespace’inin ManagementObjectSearcher nesnesi ile uygulamamızda işimizi görecek olan ilgili ManagementObject’leri elde edebiliriz. ManagementObject’ler object-oriented yapıdadırlar ve içlerindeki her bir class ilgili ManagementObject’in property ve metodlarını taşır. Uygulama geliştiriciler de ellerindeki ManagementObject nesnesi ile uygulama geliştirdikleri sistemlerde istedikleri işlemleri gerçekleştirebilirler.
WMI’da elde etmek istediğimiz verileri query’ler yardımıyla select sorgularında çekebiliriz. Bu select sorgularında ise where clause’ını kullanarak bizim ilgilendiğimiz, daha spesifik verileri de alabiliriz. Örneğin aşağıdaki kod bilgisayarda kurulu olan servislerden startup type’ları automatic olanları getirir:
SELECT * FROM Win32_Service WHERE StartMode = ‘Auto’
WMI Win32_Service gibi birçok class’a sahiptir. Ben bu makalemde bu class’lardan bazılarını açıklayarak sahip oldukları property’ler hakkında bilgi vereceğim ve ardından WMI ile bazı sistem, uygulama bilgilerine nasıl ulaşabileceğimize, tüm VMI Classları için sahip olunan özelliklerin nasıl eldeedilebileceğine dair örnek uygulamalar yapacağım.
I)Win32_ComputerSystem
Bir Windows İşletim Sistemi çalışan bilgisayar hakkındaki bilgileri barındırır.

Açıklamalar.
| AutomaticResetBootOption(Boolean) | Makinanın bir sistem hatasından sonra kendini yeniden başlatıp başlatmayacağı bilgisinin tutulduğu property’dir. |
| AutomaticResetCapability(Boolean) | Otomatik olarak yeniden başlatma özelliğinin makine ile uyumlu olup olmadığı bilgisinin tutulduğu property’dir. |
| BootOptionOnLimit(UInt16) | Reset limiti aşıldığında sistemin davranışını belirtir. |
| BootOptionOnWatchDog(UInt16) | watchdog timer çalıştırktan sonra gerçekleşen boot işleminin tipinin tutulduğu property’dir. |
| BootROMSupported(Boolean) | Boot ROM desteklenip desteklenmediği bilgisinin tutulduğu property’dir. |
| BootupState(String) | Sistemin nasıl başlatıldığı bilgisinin tutulduğu property’dir. |
| Caption(String) | Bilgisayar adının tutulduğu property’dir. |
| ChassisBootupState(UInt16) | Kasanın açılma şeklinin belirtildiği property’dir. |
| CreationClassName(String) | Mevcut VMI Class’ının belirtildiği propertydir. Bu propertyden alt propertylere tekrar ulaşılabilir. |
| CurrentTimeZone(SInt16) | Bilgisayar sisteminin saatinin Coordinated Universal Time saati ile dakika cinsinden karşılaştırıldığı property’dir |
| DaylightInEffect(Boolean) | Daylight saving özelliğinin aktif olup olmadığının bilgisinin tutulduğu property’dir. |
| Description(String) | Sistemin açıklamasının tutulduğu property’dir. |
| DNSHostName(String) | Bilgisayarın DNS host name’inin tutulduğu property’dir. |
| Domain(String) | Bilgisayarın dahil olduğu domain adının tutulduğu property’dir. |
| DomainRole(UInt16) | Bilgisayarın atanmış olduğu domain-workgroup içindeki rolünün tutulduğu property’dir. |
| EnableDaylightSavingsTime(Boolean) | Gün Işığından Faydalanma özelliğinin makina tarafından tanınıp tanınmadığı bilgisinin tutulduğu property’dir. |
| FrontPanelResetStatus(UInt16) | Makina üstündeki reset butonunun güvenlik özelliklerinin set edildiği property’dir. |
| InfraredSupported(Boolean) | Makinada infrared port olup olmadığı bilgisinin tutulduğu property’dir. |
| InstallDate(DateTime) | Bilgisayarın kurulumunun yapıldığı tarih bilgisinin tutulduğu property’dir. |
| KeyboardPasswordStatus(UInt16) | Keyboard Password Status donanım güvenlik ayarlarının tutulduğu property’dir. |
| LastLoadInfo(String) | İşletim sistemi son başlatıldığı zamanki load device veya boot service verilerine ait bilgileri tutar. |
| Manufacturer(String) | Bilgisayar üreticisinin adının tutulduğu property’dir. |
| Model(String) | Bilgisayarın model bilgisinin tutulduğu property’dir. |
| Name(String) | Makina adının tutulduğu property’dir. |
| NetworkServerModeEnabled(Boolean) | Network Server Mode’unun aktif olup olmadığı bilgisinin tutulduğu property’dir. |
| NumberOfProcessors(UInt32) | Makinada mevcut olan işlemci sayısı bilgisinin tutulduğu property’dir. |
| OEMLogoBitmap(UInt8) | OEM tarafından oluşturulan bitmap dosyanın verisini taşıyan array’dir. |
| OEMStringArray(String) | OEM tarafından tanımlanmış olan bazı özelliklerin tutulduğu array’dir. |
| PartOfDomain(Boolean) | Bilgisayarın bir domain’ine dahil olup olmadığı bilgisinin tutulduğu property’dir. |
| PauseAfterReset(SInt64) | Bir reboot başlatılmadan önceki gecikme zamanı bilgisinin tutulduğu property’dir. Değeri -1 ise bekleme süresi bilinmiyor demektir. |
| PowerManagementCapabilities(UInt16) | Bilgisayarın ve işletim sisteminin güç yönetimi ile ilgili özelliklerinin tutulduğu property’dir. Aldığı değerlerin açıklamaları aşağıdaki gibidir: |
| PowerManagementSupported(Boolean) | Cihazda güç yönetimi yapılıp yapılamayacağının tutulduğu boolean property’dir. Bu property güç yönetimi özelliklerinin etkinleştirimiş olup olmadığını belirtmez. Bu bilgi için PowerManagementCapabilities array’indeki öğelere bakılabilir. |
| PowerOnPasswordStatus(UInt16) | Sistem bütününde bulunan Power-On Password ayarı durumunu belirtir. |
| PowerState(UInt16) | Bilgisayarın ve işletim sisteminin güç durumunu tanımlayan property’dir. Aldığı değerlerin açıklamaları aşağıdaki gibidir: |
| PowerSupplyState(UInt16) | Sistem son boot edildiğindeki power supply durumunun belirtildiği propertydir. |
| PrimaryOwnerContact(String) | Bilgisayarın sahibinin erişim bilgilerinin tutulduğu property’dir. |
| PrimaryOwnerName(String) | Bilgisayar sahibinin adının tutulduğu property’dir. |
| ResetCapability(UInt16) | Etkin ise (value=4) donanımsal olarak reset imkanı var demektir. (güç ve reset düğmeleri mevcuttur). Etkin değilse (value=3) reset düğmesi mevcut değildir. Property’nin alabileceği diğer değerler ise 5-Uygulanmamış, 1-Diğer, 2-Bilinmiyor |
| ResetCount(SInt16) | Kullanıcının son reset attığından beri atılan otomatik reset sayısının tutulduğu property’dir. Değer -1 ise bilinmiyor demektir. |
| ResetLimit(SInt16) | Birbirini takip eden kaç reset girişimi olabileceğinin tutulduğu property’dir. Değer -1 ise limit bilinmiyor demektir. |
| Roles(String) | Çalışma ortamında sistemin sahip olduğu rollerin taşındığı property’dir. Örneğin bir network sisteminde property “Switch” veya “Bridge” değerlerini taşıyor olabilir. |
| Status(String) | Cihazın o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel disk durumları “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” cihazın düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Disk service durumundaysa diskle ilgili yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| SupportContactDescription(String) | Destek için kontak bilgisinin tutulduğu property’dir. |
| SystemStartupDelay(UInt16) | İşletim sisteminin başlamadan önceki gecikme zamanının tutulduğu property’dir. |
| SystemStartupOptions(String) | Bilgisayarı başlatma seçeneklerinin tutulduğu property’dir. |
| SystemStartupSetting(UInt8) | Varsayılan bilgisayarı başlatma profilinin tutulduğu property’dir. |
| SystemType(String) | Bilgisayarda çalışan sistemin tipinin tutulduğu property’dir. |
| ThermalState(UInt16) | Bilgisayarın en son açıldığı zamanki termik durumunun tutulduğu property’dir. |
| TotalPhysicalMemory(UInt64) | Toplam fiziksel belleğin tutulduğu property’dir. |
| UserName(String) | Oturum açmış mevcut kullanıcının kullanıcı adının tutulduğu property’dir. |
| WakeUpType(UInt16) | Sistemin açılışına sebep olan event’in tutulduğu property’dir. |
| Workgroup(String) | Workgroup’un adının tutulduğu property’dir. |
II)Win32_DiskDrive
Bir Windows İşletim Sistemi çalışan bilgisayar’ın üzerinde bulunan ve işletim sistemi tarafından tanınan fiziksel diskler hakkındaki bilgileri barındırır.

Açıklamalar.
| Availability(UInt16) | Diskin durumunun ve kullanılırlığının taşındığı property’dir. Örneğin bu property’nin değeri 3 ise cihaz çalışıyor demektir. 4 ise uyarı, 5 ise test, 10 ise bozulmuş, 13, 14, 15 ve 17 ise değişik şekillerde power save modunda demektir. Bu 3 moddan 13 (“Power Save – Unknown”) cihazın power save modunda olduğuna işaret eder ancak cihazın durumunun tam olarak bilinmediğini belirtir. 14 ise (“Power Save – Low Power Mode”) cihazın yine power save modunda olduğunu fakat düşük performansta da olsa çalıştığını belirtir. 15 (“Power Save – Standby”), cihazın çalışır durumda olmadığını fakat hızlıca çalışır duruma getirilebileceğini belirtir. Son olarak 17 (“Power Save – Warning”) ise cihazın pover save modunda olduğunu ve uyarı verdiğini belirtir. |
| BytesPerSector(UInt32) | BytesPerSector property’si diskin her sektöründeki byte sayısını verir. |
| CapabilityDescriptions(String) | Capabilities array’indeki her öğenin detaylı açıklamasının tutulduğu property’dir. Bu array’de tutulan her açıklama Capabilities array’indeki aynı index’te bulunan öğelerle ilişkilidir ve bu öğelerin açıklamasıdır. |
| Caption(String) | Nesnenin kısa bir açıklamasının tutulduğu property’dir. |
| CompressionMethod(String) | Cihazın sıkıştırma algoritmasını veya aracının set edildiği string tipinde property’dir. Cihaz ile sıkıştırma yapmak mümkün değilse veya bu property set edilmek istenmiyorsa (örneğin cihazın sıkıştırma destekleyip desteklemediği bilinmediği için) “Unknown”, cihazın sıkıştırma işlemini desteklediğini fakat sıkıştırma şeklinin bilinmediğini belirtmek için “Compressed” ve cihazın sıkıştırma işlemlerini desteklemediğini belirtmek için ise “Not Compressed” şeklinde bu property set edilebilir. |
| ConfigManagerErrorCode(UInt32) | Win 32 Configuration Manager hata kodunu verir. Aşağıda değerleri ve anlamları listelenmiştir: |
| ConfigManagerUserConfig(Boolean) | Cihazın kullanıcı tarafından belirlenmiş bir konfigürasyona sahip olup olmadığını belirtir. |
| DefaultBlockSize(UInt64) | Bu birim için varsayılan blok boyutunu verir. |
| Description(String) | Nesnenin açıklamasının tutulduğu property’dir. |
| DeviceID(String) | Diskin sistemdeki diğer cihazlardan ayrıştırılmasını sağlayan sahip olduğu benzersiz string tipinde ID property’sidir. |
| ErrorCleared(Boolean) | LastErrorCode property’sinde belirtilmiş olan hatanın temizlenmiş olup olmadığının tutulduğu property’dir. |
| ErrorDescription(String) | LastErrorCode property’sinde belirtilmiş olan hata ve düzeltmek için yapılabilecekler hakkında daha fazla bilgi sağlayan string tipinde property’dir. |
| ErrorMethodology(String) | Cihaz tarafından desteklenen hata belirleme ve düzeltme tipleri hakkında açıklamaların tutulduğu property’dir. |
| Index(UInt32) | Index property’si ilgili sürücünün fiziksel sürücü numarasını verir. Bu öğe Get Drive Map Info tarafından doldurulur. |
| InstallDate(DateTime) | InstallDate property’si cihazın kurulduğu tarihi tutar. Bu değerin olmaması cihazın kurulmadığı anlamına gelmez. |
| InterfaceType(String) | Diskin arabirim tipinin taşındığı property’dir. Örneğin SCSI |
| LastErrorCode(UInt32) | Cihaz tarafından verilen en son hatanın tutulduğu property’dir. |
| Manufacturer(String) | Diskin üreticisinin adının tutulduğu property’dir. |
| MaxBlockSize(UInt64) | Bu cihaz için kullanılabilecek maksimum blok boyutu byte cinsinden verilir. |
| MaxMediaSize(UInt64) | Cihaz tarafından desteklenen kb cinsinden maksimum medya boyutunun tutulduğu property’dir. Kb 1 byte’ın 1000 ile çarpımından elde edilen sayıdır, 1024 ile çarpımından elde edilen sayı değildir. |
| MediaLoaded(Boolean) | MediaLoaded özelliği disk sürücüsünde bir media olup olmadığını belirtir. Sabit diskler için bu değer herzaman true olmaktadır. Değer true ise disk sürücüsünde media yüklüdür. |
| MediaType(String) | Cihaz tarafından kullanılan veya erişilen medya tipidir. Örneğin removable media. |
| MinBlockSize(UInt64) | Erişim sırasındaki minimum blok boyutunu byte olarak verir. |
| Model(String) | Disk sürücüsünün üretici tarafından belirlenmiş olan model numarasının tutulduğu property’dir. |
| Name(String) | Cihazın adının tutulduğu property’dir. |
| NeedsCleaning(Boolean) | Cihazın temizlenmeye ihtiyacı olup olmadığının tutulduğu property’dir. Manuel veya otomatik temizleme olup olmadığı Capabilities property’sinin array’inde belirtilir. |
| NumberOfMediaSupported(UInt32) | Cihaz birden çok medyayı barındırabilme özelliğine sahipse, maksimum desteklenen medya sayısının tutulduğu property’dir. |
| Partitions(UInt32) | Disk sürücüsünde işletim sistemi tarafından tanınmış olan bölümlendirme sayısının tutulduğu property’dir. |
| PNPDeviceID(String) | Cihazın Win32 Plug and Play cihaz Id’sinin tutulduğu property’dir. |
| PowerManagementCapabilities(UInt16) | Cihazın güç yönetimi ile ilgili özelliklerinin tutulduğu property’dir. Aldığı değerlerin açıklamaları aşağıdaki gibidir: |
| PowerManagementSupported(Boolean) | Cihazda güç yönetimi yapılıp yapılamayacağının tutulduğu boolean property’dir. Bu property güç yönetimi özelliklerinin etkinleştirimiş olup olmadığını belirtmez. Bu bilgi için PowerManagementCapabilities array’indeki öğelere bakılabilir. |
| SCSIBus(UInt32) | Diskin SCSI bus numarasını verir. |
| SCSILogicalUnit(UInt16) | SCSILogicalUnit property’si diskin SCSI logical unit number (LUN) bilgisinin tutulduğu property’dir. |
| SCSIPort(UInt16) | Diskin SCSI port numarasının tutulduğu property’dir. |
| SCSITargetId(UInt16) | Diskin SCSI ID numarasının tutulduğu property’dir |
| SectorsPerTrack(UInt32) | Diskteki her track’teki sektör sayısının tutulduğu property’dir. |
| Signature(UInt32) | Diski tanımlamak için kullanılan property’dir. |
| Size(UInt64) | Diskin boyutunun tutulduğu property’dir. |
| Status(String) | Cihazın o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel disk durumları “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” cihazın düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Disk service durumundaysa diskle ilgili yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| StatusInfo(UInt16) | Mantıksal sürücünün (logical device) durumunun tutulduğu property’dir. 3 ise etkin, 4 ise etkin değil, 2 ise bilinmeyen, 1 ise diğer başka bir durumda demektir. Bu property mantıksal sürücüye uygulanmıyorsa 5 yani uygun değildir değeri kullanılmalıdır. |
| SystemCreationClassName(String) | Gözlemlenen sistemin CreationClassName property’sidir. |
| SystemName(String) | Gözlemlenen sistemin ismidir. |
| TotalCylinders(UInt64) | Diskin üstündeki toplam silindir sayısının tutulduğu property’dir. Bu değer BIOS 13h interrupt’ının fonksiyonları kullanılarak elde edilir. Bu değer, sürücü yüksek kapasite disk boyutunu desteklemek için translation scheme kullanıyorsa doğru çıkmayabilir. Kesin sürücü spesifikasyonları için üretici firmanın sağladığı bilgiler referans alınmalıdır. |
| TotalHeads(UInt32) | Bu property diskin üstündeki toplam head’lerin sayısının tutulduğu property’dir. Bu değer BIOS 13h interrupt’ının fonksiyonları kullanılarak elde edilir. Bu değer, sürücü yüksek kapasite disk boyutunu desteklemek için translation scheme kullanıyorsa doğru çıkmayabilir. Kesin sürücü spesifikasyonları için üretici firmanın sağladığı bilgiler referans alınmalıdır. |
| TotalSectors(UInt64) | Fiziksel disk sürücüsündeki toplam sektör sayısının tutulduğu property’dir. Bu değer BIOS 13h interrupt’ının fonksiyonları kullanılarak elde edilir. Bu değer, sürücü yüksek kapasite disk boyutunu desteklemek için translation scheme kullanıyorsa doğru çıkmayabilir. Kesin sürücü spesifikasyonları için üretici firmanın sağladığı bilgiler referans alınmalıdır. |
| TotalTracks(UInt64) | Fiziksel disk sürücüsündeki toplam track sayısının tutulduğu property’dir. Bu değer BIOS 13h interrupt’ının fonksiyonları kullanılarak elde edilir. Bu değer, sürücü yüksek kapasite disk boyutunu desteklemek için translation scheme kullanıyorsa doğru çıkmayabilir. Kesin sürücü spesifikasyonları için üretici firmanın sağladığı bilgiler referans alınmalıdır. |
| TracksPerCylinder(UInt32) | Fiziksel disk üstünde bulunan her silindirdeki track sayısının tutulduğu property’dir. Bu değer BIOS 13h interrupt’ının fonksiyonları kullanılarak elde edilir. Bu değer, sürücü yüksek kapasite disk boyutunu desteklemek için translation scheme kullanıyorsa doğru çıkmayabilir. Kesin sürücü spesifikasyonları için üretici firmanın sağladığı bilgiler referans alınmalıdır. |
III)Win32_LogicalDisk
Bir Windows İşletim Sistemi çalışan bilgisayar’ın üzerinde bulunan ve işletim sistemi tarafından tanınan mantıksal sürücüler hakkındaki bilgileri barındırır.

Açıklamalar.
| Access(UInt16) | Diskin erişim durumunun tutulduğu property’dir. 1 ise sadece okunabilir (readable), 2 ise yazılabilir (writeable), 3 ise hem okunabilir hem yazılabilir demektir. 0 ise bilinmiyor (Unknown), 4 ise sadece bir kerelik yazılabilir (Write Once) demektir. |
| Availability(UInt16) | Diskin durumunun ve kullanılırlığının taşındığı property’dir. Örneğin bu property’nin değeri 3 ise cihaz çalışıyor demektir. 4 ise uyarı, 5 ise test, 10 ise bozulmuş, 13, 14, 15 ve 17 ise değişik şekillerde power save modunda demektir. Bu 3 moddan 13 (“Power Save – Unknown”) cihazın power save modunda olduğuna işaret eder ancak cihazın durumunun tam olarak bilinmediğini belirtir. 14 ise (“Power Save – Low Power Mode”) cihazın yine power save modunda olduğunu fakat düşük performansta da olsa çalıştığını belirtir. 15 (“Power Save – Standby”), cihazın çalışır durumda olmadığını fakat hızlıca çalışır duruma getirilebileceğini belirtir. Son olarak 17 (“Power Save – Warning”) ise cihazın pover save modunda olduğunu ve uyarı verdiğini belirtir. |
| Caption(String) | Cihazın kısa metinsel bir açıklamasının tutulduğu property’dir. |
| ConfigManagerErrorCode(UInt32) | Win 32 Configuration Manager hata kodunu verir. Aşağıda değerleri ve anlamları listelenmiştir: |
| ConfigManagerUserConfig(Boolean) | Cihazın kullanıcı tarafından belirlenmiş bir konfigürasyona sahip olup olmadığını belirtir. |
| Description(String) | Nesnenin açıklamasının tutulduğu property’dir. |
| DeviceID(String) | Diskin sistemdeki diğer cihazlardan ayrıştırılmasını sağlayan sahip olduğu benzersiz string tipinde ID property’sidir. |
| DriveType(UInt32) | Diskin tipinin tutulduğu property’dir. Örneğin CD-ROM sürücüsünün değeri 5′tir. |
| ErrorCleared(Boolean) | LastErrorCode property’sinde belirtilmiş olan hatanın temizlenmiş olup olmadığının tutulduğu property’dir. |
| ErrorDescription(String) | LastErrorCode property’sinde belirtilmiş olan hata ve düzeltmek için yapılabilecekler hakkında daha fazla bilgi sağlayan string tipinde property’dir. |
| ErrorMethodology(String) | Cihaz tarafından desteklenen hata belirleme ve düzeltme tipleri hakkında açıklamaların tutulduğu property’dir. |
| FileSystem(String) | Diskin dosya sistemi bilgisinin tutulduğu property’dir. Örneğin NTFS |
| FreeSpace(UInt64) | Disk üzerinde ne kadar boş yer kaldığı bilgisinin tutulduğu property’dir. |
| InstallDate(DateTime) | InstallDate property’si cihazın kurulduğu tarihi tutar. Bu değerin olmaması cihazın kurulmadığı anlamına gelmez. |
| LastErrorCode(UInt32) | Cihaz tarafından verilen en son hatanın tutulduğu property’dir. |
| MaximumComponentLength(UInt32) | MaximumComponentLength property’si Win32 sürücüsü tarafından desteklenen bir dosyaya en fazla ne uzunlukta isim verilebileceğinin bilgisini tutar. |
| MediaType(UInt32) | Mantıksal sürücüdeki medya tipinin belirtildiği property’dir. Bu değer winioctl.h’de tanımlanmış olan MEDIA_TYPE enumaration’ının değerlerinden birisi olacaktır. Not: Bu değer çıkarılabilir sürücüde disk olmadığı zaman çıkarılabilir sürücüler için kesin olmayabilir. |
| Name(String) | Cihazın adının tutulduğu property’dir. |
| PNPDeviceID(String) | Cihazın Win32 Plug and Play cihaz Id’sinin tutulduğu property’dir. |
| PowerManagementCapabilities(UInt16) | Cihazın güç yönetimi ile ilgili özelliklerinin tutulduğu property’dir. Aldığı değerlerin açıklamaları aşağıdaki gibidir: |
| PowerManagementSupported(Boolean) | Cihazda güç yönetimi yapılıp yapılamayacağının tutulduğu boolean property’dir. Bu property güç yönetimi özelliklerinin etkinleştirimiş olup olmadığını belirtmez. Bu bilgi için PowerManagementCapabilities array’indeki öğelere bakılabilir. |
| ProviderName(String) | Mantıksal sürücüye atanmış olan network yolunun tutulduğu property’dir. |
| Purpose(String) | Medyayı ve/veya kullanımını açıklayan string tipinde property’dir. |
| QuotasDisabled(Boolean) | Kota yönetiminin cihazda aktif olup olmadığının tutulduğu property’dir. |
| QuotasIncomplete(Boolean) | QuotasIncomplete property’si kota yönetiminin kullanıldığını fakat etkinliğinin kaldırılıp kaldırılmadığı bilgisini tutar. |
| QuotasRebuilding(Boolean) | Bu property dosya sisteminin bilgileri derleme ve diski kota yönetimi için ayarlama aşamasında olup olmadığı bilgisini tutar. |
| Size(UInt64) | Mantıksal sürücünün byte cinsinden boyutunun tutulduğu property’dir. |
| Status(String) | Cihazın o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel disk durumları “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” cihazın düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Disk service durumundaysa diskle ilgili yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| StatusInfo(UInt16) | Mantıksal sürücünün (logical device) durumunun tutulduğu property’dir. 3 ise etkin, 4 ise etkin değil, 2 ise bilinmeyen, 1 ise diğer başka bir durumda demektir. Bu property mantıksal sürücüye uygulanmıyorsa 5 yani uygun değildir değeri kullanılmalıdır. |
| SupportsDiskQuotas(Boolean) | Diskin kota belirlemeyi destekleyip desteklemediğinin tutulduğu property’dir. |
| SupportsFileBasedCompression(Boolean) | Mantıksal disk bölümünün dosya bazlı sıkıştırmayı destekleyip desteklemediği bilgisinin tutulduğu property’dir. |
| SystemCreationClassName(String) | Gözlemlenen sistemin CreationClassName property’sidir. |
| SystemName(String) | Gözlemlenen sistemin ismidir. |
| VolumeDirty(Boolean) | VolumeDirty property’si diskin bir dahaki boot’ta chkdsk yapılması gerektirip gerektirmediği bilgisini tutar. Bu property map edilmiş mantıksal sürücülerde kullanılmaz. Sadece makinada bulunan fiziksel diskler için geçerlidir. |
| VolumeName(String) | Mantıksal sürücünün volume isminin tutulduğu property’dir. Maksimum 32 karakter alır. |
| VolumeSerialNumber(String) | Diskin volume seri numarasının tutulduğu property’dir. Maksimum 11 karakter alır. |
IV)Win32_OperatingSystem
Bir Windows İşletim Sistemi çalışan bilgisayar’ın üzerinde bulunan ve işletim sistemi hakkındaki bilgileri barındırır.

Açıklamalar.
| BootDevice(String) | BootDevice property‘si Win32 işletim sisteminin başladığı disk sürücüsünün adını taşır. Örneğin: \\Device\Harddisk0. |
| BuildNumber(String) | İşletim sisteminin build numarasını taşıyan property’dir. Release versiyon numarasından daha kesin versiyon bilgisi için kullanılabilir. |
| BuildType(String) | İşletim sistemi için kullanılan build tipinin taşındığı property’dir. |
| Caption(String) | İşletim sisteminin açıklamasının taşındığı property’dir. |
| CodeSet(String) | CodeSet property’si işletim sistemi tarafından kullanılan code page değeridir. Bir code page işletim sisteminin string’leri farklı dillere çevirebilmesi için gerekli olan karakter tablosunu içerir. American National Standards Institute (ANSI) tanımlanmış olan code page’leri temsil eden değerleri listeler. Eğer işletim sistemi bir ANSI code page’i kullanmıyorsa bu property 0’a set edilir. CodeSet property’si code page değerini tanımlamak için 6 karaktere kadar değer alabilir. Örneğin 1254. |
| CountryCode(String) | CountryCode property’si işletim sistemi tarafından kullanılan ülke/bölge kodunu belirtir. Değeri uluslararası telefon kodlarına göre belirlenir. CountryCode property’si en fazla 6 karakter uzunluğunda olabilir. Örneğin Türkiye için 90. |
| CSCreationClassName(String) | Gözlemlenen bilgisayar sisteminin CreationClassName property’sidir. |
| CSDVersion(String) | Bilgisayarda kurulu olan en son service pack’in taşındığı property’dir. Eğer hiçbir service pack kurulu değilse değeri null’dır. |
| CSName(String) | Bilgisayar adının taşındığı property’dir. |
| CurrentTimeZone(SInt16) | Dakika cinsinden işletim sisteminin Greenwich saati ile dakika cinsinden karşılaştırıldığı property’dir. Değer pozitif, negatif sayı veya sıfır olabilir. |
| DataExecutionPrevention_ 32BitApplications(Boolean) | True ise 32-bit uygulamaların Data Execution Prevention (DEP) ile çalıştığı anlamına gelir. |
| DataExecutionPrevention_Available(Boolean) | Donanımın Windows Data Execution Prevention (DEP) destekleyip desteklemediğinin tutulduğu property’dir. |
| DataExecutionPrevention_Drivers(Boolean) | True ise sürücülerin Data Execution Prevention (DEP) ile çalıştığı anlamına gelir. |
| DataExecutionPrevention_ SupportPolicy(UInt8) | DataExecutionPrevention_ SupportPolicy property’si hangi Data Execution Prevention (DEP) ayarlarının yapıldığı bilgisini taşır. |
| Debug(Boolean) | Debug property’si işletim sisteminin checked (debug) build olup olmadığı bilgisini taşır. |
| Description(String) | Windows işletim sisteminin açıklamasının tutulduğu property’dir. |
| Distributed(Boolean) | İşletim sisteminin birçok bilgisayar sistem node’unda dağıtılmış olup olmadığının tutulduğu property’dir. |
| EncryptionLevel(UInt32) | Güvenli transaction’lar için n-bit şifreleme seviyesinin tutulduğu property’dir. |
| FreePhysicalMemory(UInt64) | Kullanılmayan ve müsait olan fiziksel belleğin kb cinsinden değeri. |
| FreeVirtualMemory(UInt64) | Kullanılmayan ve müsait olan sanal bellek miktarını taşıyan property’dir. |
| InstallDate(DateTime) | İşletim sisteminin kurulduğu tarihi taşıyan datetime tipinde veridir. |
| LargeSystemCache(UInt32) | LargeSystemCache property’si belleğin uygulamalar için (value=0) veya sistem performansı için (value=1) optimize edileceğinin tutulduğu property’dir. |
| LastBootUpTime(DateTime) | İşletim sisteminin en son başlatıldığı tarihtir. |
| LocalDateTime(DateTime) | İşletim sisteminin lokal tarih ve saatinin tutulduğu property’dir. |
| Locale(String) | Locale property’si işletim sistemi tarafından kullanılan dil kimliğidir. Dil kimliği (language identifier) bir ülke veya bölge için standart bir nümerik kısaltmadır ve her dil benzersiz bir language identifier’a sahiptir. |
| Manufacturer(String) | İşletim sisteminin üreticisinin adının tutulduğu property’dir. Win32 sistemleri için Microsoft Corporation’dır. |
| MaxNumberOfProcesses(UInt32) | İşletim sisteminin desteklediği maksimum process sayısıdır. Herhangi bir maksimum değer yoksa değeri 0′dır. Bilinmiyorsa -1′dir. |
| MaxProcessMemorySize(UInt64) | Bir process’e ayrılabilecek maksimum kb cinsinden belleğin taşındığı property’dir. |
| Name(String) | İşletim sisteminin adının taşındığı property’dir. |
| NumberOfLicensedUsers(UInt32) | İşletim sisteminin kullanıcı lisans sayısıdır. Sınırsızsa 0, bilinmiyorsa -1′dir. |
| NumberOfProcesses(UInt32) | İşletim sisteminde o an yüklenmiş olan veya çalışan process’lerin sayısıdır. |
| NumberOfUsers(UInt32) | İşletim sisteminde o an mevcut olan user session’larının sayılarının tutulduğu property’dir. |
| Organization(String) | İşletim sisteminin kayıtlı kullanıcısının firma bilgisinin tutulduğu property’dir. |
| OSLanguage(UInt32) | Kurulu olan işletim sisteminin dilinin tutulduğu property’dir. Örneğin 1033 – İngilizce |
| OSProductSuite(UInt32) | İşletim sisteminde kurulu ve lisanslı olan eklentilerin sayısının tutulduğu property’dir. |
| OSType(UInt16) | İşletim sisteminin tipinin tutulduğu property’dir. |
| OtherTypeDescription(String) | OSType property’si 1 olarak yani diğer olarak set edilmişse, işletim sisteminin üreticisi ve tipi bilgilerinin tutulduğu property’dir. |
| PAEEnabled(Boolean) | |
| PlusProductID(String) | Kurulu ise Windows Plus! programının identification numarasının tutulduğu property’dir. |
| PlusVersionNumber(String) | Kurulu ise Windows Plus! programının versiyon numarasının tutulduğu property’dir. |
| Primary(Boolean) | İşletim sisteminin birincil işletim sistemi olup olmadığı bilgisinin taşındığı property’dir. |
| ProductType(UInt32) | System hakkında ek bilginin taşındığı property’dir. Değeri 1 ise work station, 2 ise domain controller, 3 ise server’dır. |
| QuantumType(UInt8) | QuantumType property’si quantum’ların fixed veya değişken uzunlukta olup olmadığı bilgisinin taşındığı property’dir. 0 ise bilinmiyor, 1 ise fixed, 2 ise değişken demektir. |
| RegisteredUser(String) | İşletim sisteminin kayıtlı kullanıcısının adının tutulduğu property’dir. |
| SerialNumber(String) | İşletim sisteminin seri numarasının tutulduğu property’dir. |
| ServicePackMajorVersion(UInt16) | Kurulu olan service pack’in major versiyon numarasının tutulduğu property’dir. Eğer SP kurulu değilse değeri 0′dır. |
| ServicePackMinorVersion(UInt16) | Kurulu olan service pack’in minor versiyon numarasının tutulduğu property’dir. Eğer SP kurulu değilse değeri 0′dır. |
| SizeStoredInPagingFiles(UInt64) | Page file’da tutulabilecek toplam kb cinsinden verinin büyüklüğünün tutulduğu property’dir. Değer 0 ise page file yok demektir. |
| Status(String) | İşletim sisteminin o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel disk durumları “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” cihazın düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Disk service durumundaysa sistemle ilgili yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| SuiteMask(UInt32) | Sistemde mevcut olan ürünlerin kodlarının tutulduğu property’dir. SuiteMask property’si şu değerlerin kombinasyonu olabilir: 0 – Windows Server 2003, Small Business Edition 1 – Windows Server 2003, Enterprise Edition 2 – Windows Server 2003, Backoffice Edition 3 – Windows Server 2003, Communications Edition 4 – Microsoft Terminal Services 5 – Windows Server 2003, Small Business Edition Restricted 6 – Windows XP Embedded 7 – Windows Server 2003, Datacenter Edition 8 – Single User 9 – Windows XP Home Edition 10 – Windows Server 2003, Web Edition |
| SystemDevice(String) | İşletim sisteminin kurulu olduğu fiziksel disk bölümünün taşındığı property’dir. |
| SystemDirectory(String) | İşletim sisteminin sistem dizininin tutulduğu property’dir. Örneğin C:\WINDOWS\SYSTEM32 |
| SystemDrive(String) | İşletim sisteminin yeraldığı disk sürücüsünün harfinin tutulduğu property’dir. Örneğin C: |
| TotalSwapSpaceSize(UInt64) | Kb cinsinden toplam swap alanıdır. |
| TotalVirtualMemorySize(UInt64) | Sanal bellekteki kb miktarı. |
| TotalVisibleMemorySize(UInt64) | İşletim sistemi tarafından kullanılabilir olan kb cinsinden toplam fiziksel bellek miktarıdır. |
| Version(String) | İşletim sisteminin versiyon numarasının tutulduğu property’dir. |
| WindowsDirectory(String) | İşletim sisteminin Windows dizininin tutulduğu property’dir. |
V)Win32_Process
İşletim sistemi üzerinde çalışan process’ler hakkında bilgileri barındırır.

Açıklamalar.
| Caption(String) | Process‘in kısa açıklamasının tutulduğu property’dir. |
| CommandLine(String) | Process’i başlatmak için kullanılan command line’ın tutulduğu property’dir. |
| CreationDate(DateTime) | Process’in çalışmaya başladığı zaman. |
| CSCreationClassName(String) | Gözlemlenen sisteminin CreationClassName property’sidir. |
| CSName(String) | Gözlemlenen sistemin adı. |
| Description(String) | Process hakkında açıklamanın tutulduğu property’dir. |
| ExecutablePath(String) | Process’in .exe dosyasının yolunun tutulduğu property’dir. |
| ExecutionState(UInt16) | Process’in mevcut çalışma durumunun tutulduğu property’dir. Aldığı değerler ve açıklamaları şöyledir: 2- Hazır, 3- Çalışıyor, 4- Bloklanmış |
| Handle(String) | Process’i tanımlamak için kullanılan string tipinde değişken. |
| HandleCount(UInt32) | Process tarafından toplam açılmış mevcut handle sayısının tutulduğu property’dir. Bu sayı process içindeki her açık thread’in toplamıdır. |
| InstallDate(DateTime) | Process’in kurulduğu tarih. |
| KernelModeTime(UInt64) | 100 nanosaniye cinsinden kernel mod’da zaman. |
| MaximumWorkingSetSize(UInt32) | Process’in RAM’de kullanabileceği maksimum bellek miktarının tutulduğu property’dir. |
| MinimumWorkingSetSize(UInt32) | Process’in RAM’de kullanabileceği minimum bellek miktarının tutulduğu property’dir. |
| Name(String) | Process’in adının tutulduğu property’dir. |
| OSCreationClassName(String) | Gözlemlenen işletim sisteminin creation class adıdır. |
| OSName(String) | Gözlemlenen işletim sisteminin adıdır. |
| OtherOperationCount(UInt64) | Read ve write’lar dışında yapılan I/O işlemlerinin sayısının tutulduğu property’dir. |
| OtherTransferCount(UInt64) | Read ve write işlemleri dışında transfer edilen toplam data miktarının tutulduğu property’dir. |
| PageFaults(UInt32) | Process tarafından oluşturulmuş olan page fault’larının sayısının tutulduğu property’dir. |
| PageFileUsage(UInt32) | Process tarafından kullanılan page file miktarının tutulduğu property’dir. |
| ParentProcessId(UInt32) | Process’i yaratan diğer process’in Id’sinin tutulduğu property’dir. |
| PeakPageFileUsage(UInt32) | Process’in ömrü boyunca kullanılmış olan en fazla page file miktarıdır. |
| PeakWorkingSetSize(UInt32) | Process’in en yüksek working set size’ının tutulduğu property’dir. |
| Priority(UInt32) | Process’in işletim sistemi içindeki önem derecesinin tutulduğu property’dir. 0 (en düşük) ile 31 (en yüksek) arasında değer alır. |
| PrivatePageCount(UInt64) | Sadece ilgili process tarafından ulaşılabilen page’lerin toplam sayısının tutulduğu property’dir. |
| ProcessId(UInt32) | İlgili process’i tanımlamak için kullanılan property’dir. Değer process başladıktan sona erene kadar geçerlidir. |
| QuotaNonPagedPoolUsage(UInt32) | Process’in paged olmayan pool kullanım miktarı kotasının tutulduğu property’dir. |
| QuotaPagedPoolUsage(UInt32) | Process’in paged olan pool kullanım miktarı kotasının tutulduğu property’dir. |
| QuotaPeakNonPagedPoolUsage(UInt32) | Process’in paged olmayan en yüksek pool kullanım miktarı kotasının tutulduğu property’dir. |
| QuotaPeakPagedPoolUsage(UInt32) | Process’in paged olan en yüksek pool kullanım miktarı kotasının tutulduğu property’dir. |
| ReadOperationCount(UInt64) | Kaç adet read işleminin gerçekleştiğini tutan property’dir. |
| ReadTransferCount(UInt64) | Okunan verinin miktarının tutulduğu property’dir. |
| SessionId(UInt32) | İşletim tarafı tarafından oluşturulan session’ın Id’sinin tutulduğu property’dir. |
| Status(String) | Process’in o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel durumlar “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” cihazın düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Disk service durumundaysa sistemle ilgili yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| TerminationDate(DateTime) | Process’in durduğu veya sona erdiği zamanın tutulduğu property’dir. |
| ThreadCount(UInt32) | Process içindeki aktif thread sayısının tutulduğu property’dir. |
| VirtualSize(UInt64) | Process’in kullandığı sanal adres alanının tutulduğu property’dir. |
| WindowsVersion(String) | Process’in çalıştığı Windows versiyonunun tutulduğu property’dir. |
| WorkingSetSize(UInt64) | Process’in verimli bir şekilde çalışabilmesi için gerekli olan bellek miktarıdır. |
| WriteOperationCount(UInt64) | Gerçekleşmiş olan write işlemlerinin sayısının tutulduğu property’dir. |
| WriteTransferCount(UInt64) | Yazılmış olan data miktarının tutulduğu property’dir. |
VI)Win32_Processor
Çalışmakta olan bilgisayarda bulunan işlemci bilgilerini barındırır. Birden fazla işlemci olması durumunda her işlemci için bir class ile bu bilgiler tutulur.

Açıklamalar.
| AddressWidth(UInt16) | Bit olarak işlemci adres genişliğinin tutulduğu property’dir. |
| Architecture(UInt16) | İlgili platform tarafından kullanılan işlemci mimarisinin tutulduğu property’dir. Şu değerlerden birisini alır: 0 – x86 1 – MIPS 2 – Alpha 3 – PowerPC 6 – ia64 9 – x64 |
| Availability(UInt16) | İşlemcinin durumunun ve kullanılırlığının taşındığı property’dir. Örneğin bu property’nin değeri 3 ise cihaz çalışıyor demektir. 4 ise uyarı, 5 ise test, 10 ise bozulmuş, 13, 14, 15 ve 17 ise değişik şekillerde power save modunda demektir. Bu 3 moddan 13 (“Power Save – Unknown”) cihazın power save modunda olduğuna işaret eder ancak cihazın durumunun tam olarak bilinmediğini belirtir. 14 ise (“Power Save – Low Power Mode”) cihazın yine power save modunda olduğunu fakat düşük performansta da olsa çalıştığını belirtir. 15 (“Power Save – Standby”), cihazın çalışır durumda olmadığını fakat hızlıca çalışır duruma getirilebileceğini belirtir. Son olarak 17 (“Power Save – Warning”) ise cihazın pover save modunda olduğunu ve uyarı verdiğini belirtir. |
| Caption(String) | İşlemci hakkında kısa açıklamanın tutulduğu property’dir. |
| ConfigManagerErrorCode(UInt32) | Win 32 Configuration Manager hata kodunu verir. Aşağıda değerleri ve anlamları listelenmiştir: |
| ConfigManagerUserConfig(Boolean) | Cihazın kullanıcı tarafından belirlenmiş bir konfigürasyona sahip olup olmadığını belirtir. |
| CpuStatus(UInt16) | İşlemcinin mevcut durumunun tutulduğu property’dir. |
| CurrentClockSpeed(UInt32) | İşlemcinin mevcut hızının (MHz cinsinden) tutulduğu property’dir. |
| CurrentVoltage(UInt16) | İşlemcinin voltaj özelliğinin tutulduğu property’dir. |
| DataWidth(UInt16) | Bit cinsinden işlemci veri genişliği. |
| Description(String) | İşlemcinin açıklamasının tutulduğu property. |
| DeviceID(String) | İşlemcinin sistemdeki diğer cihazlardan ayrıştırılmasını sağlayan sahip olduğu benzersiz string tipinde ID property’sidir. |
| ErrorCleared(Boolean) | LastErrorCode property’sinde belirtilmiş olan hatanın temizlenmiş olup olmadığının tutulduğu property’dir. |
| ErrorDescription(String) | LastErrorCode property’sinde belirtilmiş olan hata ve düzeltmek için yapılabilecekler hakkında daha fazla bilgi sağlayan string tipinde property’dir. |
| ExtClock(UInt32) | External clock frekansının tutulduğu property’dir. Frekans bilinmiyorsa değeri null’dır. |
| Family(UInt16) | İşlemci ailesi tipi. Örneğin değeri 14 ise Pentium(R) MMX (TM) işlemci |
| InstallDate(DateTime) | InstallDate property’si cihazın kurulduğu tarihi tutar. Bu değerin olmaması cihazın kurulmadığı anlamına gelmez. |
| L2CacheSize(UInt32) | İşlemcinin Level 2 cache boyutunun tutulduğu property’dir. |
| L2CacheSpeed(UInt32) | İşlemcinin Level 2 cache’inin clockspeed’inin tutulduğu property’dir. |
| LastErrorCode(UInt32) | Cihaz tarafından verilen en son hatanın tutulduğu property’dir. |
| Level(UInt16) | İşlemci tipinin tutulduğu property’dir. Aldığı değer işlemcinin mimarisine göre değişir. |
| LoadPercentage(UInt16) | Her işlemcinin son bir saniye içindeki ortalama load capacity’sinin tutulduğu property’dir. |
| Manufacturer(String) | İşlemcinin üreticisinin adının tutulduğu property’dir. |
| MaxClockSpeed(UInt32) | İşlemcinin maximum hızının (MHz) tutulduğu property’dir. |
| Name(String) | İşlemcinin adının tutulduğu property’dir. |
| OtherFamilyDescription(String) | Family property’sinin değeri 1 olduğunda (“Other”) kullanılan işlemci aile tipinin tutulduğu property’dir. |
| PNPDeviceID(String) | Cihazın Win32 Plug and Play cihaz Id’sinin tutulduğu property’dir. |
| PowerManagementCapabilities(UInt16) | İşlemcinin güç yönetimi ile ilgili özelliklerinin tutulduğu property’dir. Aldığı değerlerin açıklamaları aşağıdaki gibidir: |
| PowerManagementSupported(Boolean) | İşlemcide güç yönetimi yapılıp yapılamayacağının tutulduğu boolean property’dir. Bu property güç yönetimi özelliklerinin etkinleştirimiş olup olmadığını belirtmez. Bu bilgi için PowerManagementCapabilities array’indeki öğelere bakılabilir. |
| ProcessorId(String) | İşlemcinin özelliklerinin tanımlandığı işlemci bazlı bilginin tutulduğu property’dir. |
| ProcessorType(UInt16) | İşlemcinin birincil fonksiyonunun tutulduğu property’dir. |
| Role(String) | İşlemcinin rolünün belirlendiği string tipinde property’dir. |
| SocketDesignation(String) | Devrelerde kullanılan chip socket’in tipinin tutulduğu property’dir. |
| Status(String) | İşlemcinin o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel disk durumları “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” cihazın düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Service durumundaysa yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| StatusInfo(UInt16) | Mantıksal sürücünün (logical device) durumunun tutulduğu property’dir. 3 ise etkin, 4 ise etkin değil, 2 ise bilinmeyen, 1 ise diğer başka bir durumda demektir. Bu property mantıksal sürücüye uygulanmıyorsa 5 yani uygun değildir değeri kullanılmalıdır. |
| Stepping(String) | İşlemci ailesi içinde işlemcinin revision level’ının tutulduğu string tipinde property’dir. |
| SystemCreationClassName(String) | Gözlemlenen sistemin CreationClassName property’sidir. |
| SystemName(String) | Gözlemlenen sistemin ismidir. |
| UniqueId(String) | İşlemci ailesi içinde ilgili işlemciye ait olan benzersiz Id numarasının tutulduğu property’dir. |
| UpgradeMethod(UInt16) | Upgrade destekleniyorsa işlemcinin nasıl upgrade edilebileceğine dair CPU socket bilgisinin tutulduğu property’dir. |
| Version(String) | İşlemci revizyon numarasının tutulduğu property’dir. |
| VoltageCaps(UInt32) | İşlemcinin voltaj kapasitesinin tutulduğu property’dir. |
VII)Win32_Service
Bilgisayarda çalışmakta olan servislere ilişkin bilgileri barındırır.

Açıklamalar.
| AcceptPause(Boolean) | Servisin pause edilip edilemeyeceğinin tutulduğu property’dir. |
| AcceptStop(Boolean) | Servisin stop edilip edilemeyeceğinin tutulduğu property’dir. |
| Caption(String) | Servisin kısa açıklamasının tutulduğu property’dir. |
| CheckPoint(UInt32) | Servisin her durduğu, başladığı veya pause olduğu zamanlarda artan değerdir. |
| Description(String) | Servisin açıklamasının tutulduğu property’dir. |
| DesktopInteract(Boolean) | Servisin masaüstü ile etkileşim içinde olup olmadığının tutulduğu property’dir. |
| DisplayName(String) | Servisin görüntülenen adının tutulduğu property’dir. Maksimum 256 karakter uzunluğunda olabilir. |
| ErrorControl(String) | Servis başlarken hata verirse, ErrorControl property’si hatanın derecesini tutar. Bütün hatalar sistem tarafından kaydedilir. Bilgisayar kullanıcıyı “Ignore” tipi hatalarda uyarmaz. “Normal” tipindeki hatalarda kullanıcı uyarılır. “Severe” tipindeki hatalarda sistem en son düzgün konfigürasyonda yeniden başlatılır. “Critical” tipindeki hatalarda ise sistem düzgün bir configürasyonda yeniden başlatılır. |
| ExitCode(UInt32) | Servis başlatılırken veya durdurulurken oluşan Win32 hata kodunun tutulduğu property’dir. |
| InstallDate(DateTime) | Servisin kurulduğu tarihtir. |
| Name(String) | Servisin tanımlandığı property’dir. |
| PathName(String) | Servisin binary dosyasına ait fully qualified dosya yolunun tutulduğu property’dir. |
| ProcessId(UInt32) | Servisin process identifier’ının tutulduğu property’dir. |
| ServiceSpecificExitCode(UInt32) | Servis başlatılıyorken veya durduruluyorken servise özgü hataların tutulduğu property’dir. |
| ServiceType(String) | Servisin tipinin tutulduğu property’dir. |
| Started(Boolean) | Servisin başlatılıp başlatılmadığının tutulduğu property’dir. |
| StartMode(String) | Servisin başlangıç modunun tutulduğu property’dir. Değeri “Boot” ise bir aygıt sürücüsünün işletim sistemi tarafından başlatıldığı anlamına gelir. Değeri “System” ise IoInitSystem tarafından başlatılan bir aygıt sürücüsü olduğu anlamına gelir. “Automatic” ise servisin service control manager tarafından bilgisayar başladığında başlatıldığı anlamına gelir. “Manual” servisin bir process’in StartService fonksiyonunu çağırdığı zaman service control manager tarafından başlatıldığı anlamına gelir. “Disabled” ise servisin başlatılamayacağı anlamına gelir. |
| StartName(String) | Servisin hangi account name altında çalıştığının tutulduğu property’dir. |
| State(String) | Base servisin mevcut durumunun tutulduğu property’dir. |
| Status(String) | Servisin o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel durumlar “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” servisin düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Service durumundaysa sistemle ilgili yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| SystemCreationClassName(String) | Gözlemlenen sistemin CreationClassName’inin tutulduğu property’dir. |
| SystemName(String) | Gözlemlenen sistemin adının tutulduğu property’dir. |
| TagId(UInt32) | Servis için belirlenmiş olan unique bir tag değerinin tutulduğu property’dir. Tag değeri HKEY_LOCAL_MACHINE\System \CurrentControlSet\Control\GroupOrderList’de bulunan registry kaydındaki servislerin başlatılma sıralarının belirlenmesinde kullanılabilir. |
| WaitHint(UInt32) | Bekleyen bir start, stop, pause veya continue işlemi için tahmin edilen gerekli zamanın tutulduğu property’dir. |
VIII)Win32_VideoController
Bilgisayarda bulunan ekran kartı ve yetenekleri hakkında bilgileri barındırır.
Açıklamalar.
| AcceleratorCapabilities(UInt16) | Ekran kartının grafik ve 3D özelliklerinin tutulduğu property’dir. |
| AdapterCompatibility(String) | Ekran kartının chip set’inin tutulduğu property’dir. |
| AdapterDACType(String) | Digital-to-Analog converter’ın (DAC) adının veya ID’sinin tutulduğu property’dir. |
| AdapterRAM(UInt32) | Ekran kartının belleğinin tutulduğu property’dir. |
| Availability(UInt16) | Ekran kartının durumunun ve kullanılırlığının taşındığı property’dir. Örneğin bu property’nin değeri 3 ise cihaz çalışıyor demektir. 4 ise uyarı, 5 ise test, 10 ise bozulmuş, 13, 14, 15 ve 17 ise değişik şekillerde power save modunda demektir. Bu 3 moddan 13 (“Power Save – Unknown”) cihazın power save modunda olduğuna işaret eder ancak cihazın durumunun tam olarak bilinmediğini belirtir. 14 ise (“Power Save – Low Power Mode”) cihazın yine power save modunda olduğunu fakat düşük performansta da olsa çalıştığını belirtir. 15 (“Power Save – Standby”), cihazın çalışır durumda olmadığını fakat hızlıca çalışır duruma getirilebileceğini belirtir. Son olarak 17 (“Power Save – Warning”) ise cihazın pover save modunda olduğunu ve uyarı verdiğini belirtir. |
| CapabilityDescriptions(String) | Ekran kartının özelliklerinin detaylı açıklamalarının tutulduğu property’dir. |
| Caption(String) | Ekran kartının kısa açıklamasının tutulduğu property’dir. |
| ConfigManagerErrorCode(UInt32) | Win 32 Configuration Manager hata kodunu verir. Aşağıda değerleri ve anlamları listelenmiştir: |
| ConfigManagerUserConfig(Boolean) | Cihazın kullanıcı tarafından belirlenmiş bir konfigürasyona sahip olup olmadığını belirtir. |
| CurrentBitsPerPixel(UInt32) | Her pikseli için kullanılan bit sayısı. |
| CurrentHorizontalResolution(UInt32) | Mevcut yatay piksel sayısı. |
| CurrentNumberOfColors(UInt64) | Mevcut çözünürlükte desteklenen renk sayısı. |
| CurrentNumberOfColumns(UInt32) | Harf modundaysa ekran kartının sütun sayısı. Değilse değeri 0′dır. |
| CurrentNumberOfRows(UInt32) | Harf modundaysa ekran kartının satır sayısının tutulduğu property’dir. Değilse değeri 0′dır. |
| CurrentRefreshRate(UInt32) | Ekran kartının yenilenme süresinin tutulduğu property’dir. |
| CurrentScanMode(UInt16) | Mevcut scan modunun tutulduğu property’dir. |
| CurrentVerticalResolution(UInt32) | Mevcut dikey piksel sayısı |
| Description(String) | Ekran kartının açıklamasının tutulduğu property’dir. |
| DeviceID(String) | Ekran kartının sistemdeki diğer cihazlardan ayrıştırılmasını sağlayan sahip olduğu benzersiz string tipinde ID property’sidir. |
| DitherType(UInt32) | Ekran kartının titreme tipinin tutulduğu property’dir. |
| DriverDate(DateTime) | Yüklü ekran kartı sürücüsünün en son güncelleme günü ve saatinin tutulduğu property’dir. |
| DriverVersion(String) | Ekran kartının driver’ının versiyon numarasının tutulduğu property’dir. |
| ErrorCleared(Boolean) | LastErrorCode property’sinde belirtilmiş olan hatanın temizlenmiş olup olmadığının tutulduğu property’dir. |
| ErrorDescription(String) | LastErrorCode property’sinde belirtilmiş olan hata ve düzeltmek için yapılabilecekler hakkında daha fazla bilgi sağlayan string tipinde property’dir. |
| ICMIntent(UInt32) | Hangi renk eşleştirme metodunun (Image Color Matching Intent) kullanılacağının tutulduğu property’dir. |
| ICMMethod(UInt32) | Renk eşleştirme metodunun (ICM) nasıl handle edildiğinin tutulduğu property’dir. |
| InfFilename(String) | Ekran kartının .inf dosyasının yolunun tutulduğu property’dir. |
| InfSection(String) | Win32 video bilgisinin .inf dosyasının hangi bölümünde olduğu bilgisinin tutulduğu property’dir. |
| InstallDate(DateTime) | Ekran kartının kurulduğu tarihin tutulduğu property’dir. |
| InstalledDisplayDrivers(String) | Kurulu ekran kartının sürücüsünün adının tutulduğu property’dir. |
| LastErrorCode(UInt32) | Cihaz tarafından verilen en son hatanın tutulduğu property’dir. |
| MaxMemorySupported(UInt32) | Byte cinsinden desteklenen maksimum bellek. |
| MaxRefreshRate(UInt32) | Hertz cinsinden ekran kartının maksimum refresh rate’inin tutulduğu property’dir. |
| MinRefreshRate(UInt32) | Hertz cinsinden ekran kartının minimum refresh rate’inin tutulduğu property’dir. |
| Monochrome(Boolean) | İmajların grayscale mi renkli mi gösterildiğinin tutulduğu property’dir. |
| Name(String) | Ekran kartının adının tutulduğu property’dir. |
| NumberOfVideoPages(UInt32) | Mevcut çözünürlük ve bellek tarafından desteklenen video page sayısının tutulduğu property’dir. |
| PNPDeviceID(String) | Cihazın Win32 Plug and Play cihaz Id’sinin tutulduğu property’dir. |
| PowerManagementCapabilities(UInt16) | Cihazın güç yönetimi ile ilgili özelliklerinin tutulduğu property’dir. Aldığı değerlerin açıklamaları aşağıdaki gibidir: |
| PowerManagementSupported(Boolean) | Cihazda güç yönetimi yapılıp yapılamayacağının tutulduğu boolean property’dir. Bu property güç yönetimi özelliklerinin etkinleştirimiş olup olmadığını belirtmez. Bu bilgi için PowerManagementCapabilities array’indeki öğelere bakılabilir. |
| ProtocolSupported(UInt16) | Ekran kartının “controlled” cihazlara erişmesi için kullanılan protokol’dür. |
| ReservedSystemPaletteEntries(UInt32) | Sistemin renk tablosundaki mevcut rezerve edilmiş entry’lerin tutulduğu property’dir. |
| Status(String) | Cihazın o anki durumunun tutulduğu property’dir. İşlevsel ve işlevsel olmayan birçok durum tanımlanabilir. İşlevsel disk durumları “OK” (Çalışıyor), “Degraded” (Bozulmuş) ve “Pred Fail”’dir. “Pred Fail” cihazın düzgün çalıştığını ancak yakın zamanda bir hata alınabilir olduğunu belirtir. İşlevsel olmayan durumlar ise “Error” (Hata), “Starting” (Başlatılıyor), “Stopping” (Durduruluyor) ve “Service”’dir. Disk service durumundaysa diskle ilgili yönetimsel bazı işlemler yapılıyor anlamına gelir. |
| StatusInfo(UInt16) | Mantıksal sürücünün (logical device) durumunun tutulduğu property’dir. 3 ise etkin, 4 ise etkin değil, 2 ise bilinmeyen, 1 ise diğer başka bir durumda demektir. Bu property mantıksal sürücüye uygulanmıyorsa 5 yani uygun değildir değeri kullanılmalıdır. |
| SystemCreationClassName(String) | Gözlemlenen sistemin CreationClassName property’sidir. |
| SystemName(String) | Gözlemlenen sistemin ismidir. |
| SystemPaletteEntries(UInt32) | Renk tablosundaki mevcut kayıt sayısının tutulduğu property’dir. |
| TimeOfLastReset(DateTime) | Controller’ın en son reset’lendiği tarihin tutulduğu property’dir. |
| VideoArchitecture(UInt16) | Ekran mimarisinin tutulduğu property’dir. Çrmeğin 5-VGA |
| VideoMemoryType(UInt16) | Ekran bellek tipinin tutulduğu property’dir. |
| VideoMode(UInt16) | Mevcut video modu. |
| VideoModeDescription(String) | Mevcut çözünürlük, renk ve scan mode ayarlarının tutulduğu property’dir. |
| VideoProcessor(String) | Ekran kartının açıklamasının tutulduğu property’dir. |
IX)Diğer Classlar
Bu kısımda ise diğer class’lar gruplarına göre verilmiştir.
Computer System Hardware Classes |
| Win32_1394Controller |
| Win32_1394ControllerDevice |
| Win32_AllocatedResource |
| Win32_AssociatedBattery |
| Win32_AssociatedProcessorMemory |
| Win32_AutochkSetting |
| Win32_BaseBoard |
| Win32_Battery |
| Win32_BIOS |
| Win32_Bus |
| Win32_CacheMemory |
| Win32_CDROMDrive |
| Win32_ControllerHasHub |
| Win32_CurrentProbe |
| Win32_DefragAnalysis |
| Win32_DesktopMonitor |
| Win32_DeviceBus |
| Win32_DeviceMemoryAddress |
| Win32_DeviceSettings |
| Win32_DiskDrive |
| Win32_DiskDrivePhysicalMedia |
| Win32_DisplayConfiguration |
| Win32_DisplayControllerConfiguration |
| Win32_DMAChannel |
| Win32_DriverForDevice |
| Win32_Fan |
| Win32_FloppyController |
| Win32_FloppyDrive |
| Win32_HeatPipe |
| Win32_IDEController |
| Win32_IDEControllerDevice |
| Win32_InfraredDevice |
| Win32_IRQResource |
| Win32_Keyboard |
| Win32_MemoryArray |
| Win32_MemoryArrayLocation |
| Win32_MemoryDevice |
| Win32_MemoryDeviceArray |
| Win32_MemoryDeviceLocation |
| Win32_MotherboardDevice |
| Win32_MountPoint |
| Win32_NetworkAdapter |
| Win32_NetworkAdapterConfiguration |
| Win32_NetworkAdapterSetting |
| Win32_OnBoardDevice |
| Win32_ParallelPort |
| Win32_PCMCIAController |
| Win32_PhysicalMedia |
| Win32_PhysicalMemory |
| Win32_PhysicalMemoryArray |
| Win32_PhysicalMemoryLocation |
| Win32_PnPAllocatedResource |
| Win32_PnPDevice |
| Win32_PnPEntity |
| Win32_PnPSignedDriver |
| Win32_PnPSignedDriverCIMDataFile |
| Win32_PointingDevice |
| Win32_PortableBattery |
| Win32_PortConnector |
| Win32_PortResource |
| Win32_PowerManagementEvent |
| Win32_POTSModem |
| Win32_POTSModemToSerialPort |
| Win32_Printer |
| Win32_PrinterConfiguration |
| Win32_PrinterController |
| Win32_PrinterDriver |
| Win32_PrinterDriverDll |
| Win32_PrinterSetting |
| Win32_PrintJob |
| Win32_Processor |
| Win32_Refrigeration |
| Win32_SCSIController |
| Win32_SCSIControllerDevice |
| Win32_SerialPort |
| Win32_SerialPortConfiguration |
| Win32_SerialPortSetting |
| Win32_SMBIOSMemory |
| Win32_SoundDevice |
| Win32_SystemBIOS |
| Win32_SystemDriverPnPEntity |
| Win32_SystemEnclosure |
| Win32_SystemMemoryResource |
| Win32_SystemSlot |
| Win32_TapeDrive |
| Win32_TCPIPPrinterPort |
| Win32_TemperatureProbe |
| Win32_UninterruptiblePowerSupply |
| Win32_USBController |
| Win32_USBControllerDevice |
| Win32_USBHub |
| Win32_VideoConfiguration |
| Win32_VideoController |
| Win32_VideoSettings |
| Win32_VoltageProbe |
WMI Service Management Classes |
| Win32_MethodParameterClass |
| Win32_WMISetting |
| Win32_WMIElementSetting |
Performance Counter Classes |
| Win32_Perf |
| Win32_PerfFormattedData |
| Win32_PerfFormattedData_ASP_ActiveServerPages |
| Win32_PerfFormattedData_ContentFilter_IndexingServiceFilter |
| Win32_PerfFormattedData_ContentIndex_IndexingService |
| Win32_PerfFormattedData_InetInfo_InternetInformationServicesGlobal |
| Win32_PerfFormattedData_ISAPISearch_HttpIndexingService |
| Win32_PerfFormattedData_MSDTC_DistributedTransactionCoordinator |
| Win32_PerfFormattedData_NTFSDRV_SMTPNTFSStoreDriver |
| Win32_PerfFormattedData_PerfDisk_LogicalDisk |
| Win32_PerfFormattedData_PerfDisk_PhysicalDisk |
| Win32_PerfFormattedData_PerfNet_Browser |
| Win32_PerfFormattedData_PerfNet_Redirector |
| Win32_PerfFormattedData_PerfNet_Server |
| Win32_PerfFormattedData_PerfNet_ServerWorkQueues |
| Win32_PerfFormattedData_PerfOS_Cache |
| Win32_PerfFormattedData_PerfOS_Memory |
| Win32_PerfFormattedData_PerfOS_Objects |
| Win32_PerfFormattedData_PerfOS_PagingFile |
| Win32_PerfFormattedData_PerfOS_Processor |
| Win32_PerfFormattedData_PerfOS_System |
| Win32_PerfFormattedData_PerfProc_FullImage_Costly |
| Win32_PerfFormattedData_PerfProc_Image_Costly |
| Win32_PerfFormattedData_PerfProc_JobObject |
| Win32_PerfFormattedData_PerfProc_JobObjectDetails |
| Win32_PerfFormattedData_PerfProc_Process |
| Win32_PerfFormattedData_PerfProc_ProcessAddressSpace_Costly |
| Win32_PerfFormattedData_PerfProc_Thread |
| Win32_PerfFormattedData_PerfProc_ThreadDetails_Costly |
| Win32_PerfFormattedData_PSched_PSchedFlow |
| Win32_PerfFormattedData_PSched_PSchedPipe |
| Win32_PerfFormattedData_RemoteAccess_RASPort |
| Win32_PerfFormattedData_RemoteAccess_RASTotal |
| Win32_PerfFormattedData_RSVP_ACSRSVPInterfaces |
| Win32_PerfFormattedData_RSVP_ACSRSVPService |
| Win32_PerfFormattedData_SMTPSVC_SMTPServer |
| Win32_PerfFormattedData_Spooler_PrintQueue |
| Win32_PerfFormattedData_TapiSrv_Telephony |
| Win32_PerfFormattedData_Tcpip_ICMP |
| Win32_PerfFormattedData_Tcpip_IP |
| Win32_PerfFormattedData_Tcpip_NBTConnection |
| Win32_PerfFormattedData_Tcpip_NetworkInterface |
| Win32_PerfFormattedData_Tcpip_TCP |
| Win32_PerfFormattedData_Tcpip_UDP |
| Win32_PerfFormattedData_TermService_TerminalServices |
| Win32_PerfFormattedData_TermService_TerminalServicesSession |
| Win32_PerfFormattedData_W3SVC_WebService |
| Win32_PerfRawData |
| Win32_PerfRawData_ASP_ActiveServerPages |
| Win32_PerfRawData_ContentFilter_IndexingServiceFilter |
| Win32_PerfRawData_ContentIndex_IndexingService |
| Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal |
| Win32_PerfRawData_ISAPISearch_HttpIndexingService |
| Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator |
| Win32_PerfRawData_NTFSDRV_SMTPNTFSStoreDriver |
| Win32_PerfRawData_PerfDisk_LogicalDisk |
| Win32_PerfRawData_PerfDisk_PhysicalDisk |
| Win32_PerfRawData_PerfNet_Browser |
| Win32_PerfRawData_PerfNet_Redirector |
| Win32_PerfRawData_PerfNet_Server |
| Win32_PerfRawData_PerfNet_ServerWorkQueues |
| Win32_PerfRawData_PerfOS_Cache |
| Win32_PerfRawData_PerfOS_Memory |
| Win32_PerfRawData_PerfOS_Objects |
| Win32_PerfRawData_PerfOS_PagingFile |
| Win32_PerfRawData_PerfOS_Processor |
| Win32_PerfRawData_PerfOS_System |
| Win32_PerfRawData_PerfProc_FullImage_Costly |
| Win32_PerfRawData_PerfProc_Image_Costly |
| Win32_PerfRawData_PerfProc_JobObject |
| Win32_PerfRawData_PerfProc_JobObjectDetails |
| Win32_PerfRawData_PerfProc_Process |
| Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly |
| Win32_PerfRawData_PerfProc_Thread |
| Win32_PerfRawData_PerfProc_ThreadDetails_Costly |
| Win32_PerfRawData_PSched_PSchedFlow |
| Win32_PerfRawData_PSched_PSchedPipe |
| Win32_PerfRawData_RemoteAccess_RASPort |
| Win32_PerfRawData_RemoteAccess_RASTotal |
| Win32_PerfRawData_RSVP_ACSRSVPInterfaces |
| Win32_PerfRawData_RSVP_ACSRSVPService |
| Win32_PerfRawData_SMTPSVC_SMTPServer |
| Win32_PerfRawData_Spooler_PrintQueue |
| Win32_PerfRawData_TapiSrv_Telephony |
| Win32_PerfRawData_Tcpip_ICMP |
| Win32_PerfRawData_Tcpip_IP |
| Win32_PerfRawData_Tcpip_NBTConnection |
| Win32_PerfRawData_Tcpip_NetworkInterface |
| Win32_PerfRawData_Tcpip_TCP |
| Win32_PerfRawData_Tcpip_UDP |
| Win32_PerfRawData_TermService_TerminalServices |
| Win32_PerfRawData_TermService_TerminalServicesSession |
| Win32_PerfRawData_W3SVC_WebService |
Operating System Classes |
| Win32_Account |
| Win32_AccountSID |
| Win32_ACE |
| Win32_ActiveRoute |
| Win32_BaseService |
| Win32_BootConfiguration |
| Win32_CIMLogicalDeviceCIMDataFile |
| Win32_ClassicCOMApplicationClasses |
| Win32_ClassicCOMClass |
| Win32_ClassicCOMClassSetting |
| Win32_ClassicCOMClassSettings |
| Win32_ClientApplicationSetting |
| Win32_CodecFile |
| Win32_CollectionStatistics |
| Win32_COMApplicationClasses |
| Win32_COMApplicationSettings |
| Win32_ComClassAutoEmulator |
| Win32_ComClassEmulator |
| Win32_COMApplication |
| Win32_COMClass |
| Win32_ComponentCategory |
| Win32_ComputerShutdownEvent |
| Win32_ComputerSystem |
| Win32_ComputerSystemEvent |
| Win32_ComputerSystemProduct |
| Win32_ComputerSystemProcessor |
| Win32_ComputerSystemWindowsProductActivationSetting |
| Win32_COMSetting |
| Win32_ConnectionShare |
| Win32_CurrentTime |
| Win32_DCOMApplication |
| Win32_DCOMApplicationAccessAllowedSetting |
| Win32_DCOMApplicationLaunchAllowedSetting |
| Win32_DCOMApplicationSetting |
| Win32_DependentService |
| Win32_Desktop |
| Win32_DeviceChangeEvent |
| Win32_DFSNode |
| Win32_DFSNodeTarget |
| Win32_DFSTarget |
| Win32_Directory |
| Win32_DirectorySpecification |
| Win32_DiskDriveToDiskPartition |
| Win32_DiskPartition |
| Win32_DiskQuota |
| Win32_DriverVXD |
| Win32_Environment |
| Win32_Group |
| Win32_GroupInDomain |
| Win32_GroupUser |
| Win32_IP4PersistedRouteTable |
| Win32_IP4RouteTable |
| Win32_IP4RouteTableEvent |
| Win32_ImplementedCategory |
| Win32_JobObjectStatus |
| Win32_LoadOrderGroup |
| Win32_LoadOrderGroupServiceDependencies |
| Win32_LoadOrderGroupServiceMembers |
| Win32_LocalTime |
| Win32_LoggedOnUser |
| Win32_LogicalDisk |
| Win32_LogicalDiskRootDirectory |
| Win32_LogicalDiskToPartition |
| Win32_LogicalFileAccess |
| Win32_LogicalFileAuditing |
| Win32_LogicalFileGroup |
| Win32_LogicalFileOwner |
| Win32_LogicalFileSecuritySetting |
| Win32_LogicalMemoryConfiguration |
| Win32_LogicalProgramGroup |
| Win32_LogicalProgramGroupDirectory |
| Win32_LogicalProgramGroupItem |
| Win32_LogicalProgramGroupItemDataFile |
| Win32_LogicalShareAccess |
| Win32_LogicalShareAuditing |
| Win32_LogicalShareSecuritySetting |
| Win32_LogonSession |
| Win32_LogonSessionMappedDisk |
| Win32_LUID |
| Win32_LUIDandAttributes |
| Win32_MappedLogicalDisk |
| Win32_ModuleLoadTrace |
| Win32_ModuleTrace |
| Win32_NamedJobObject |
| Win32_NamedJobObjectActgInfo |
| Win32_NamedJobObjectLimit |
| Win32_NamedJobObjectLimitSetting |
| Win32_NamedJobObjectProcess |
| Win32_NamedJobObjectSecLimit |
| Win32_NamedJobObjectSecLimitSetting |
| Win32_NamedJobObjectStatistics |
| Win32_NetworkClient |
| Win32_NetworkConnection |
| Win32_NetworkLoginProfile |
| Win32_NetworkProtocol |
| Win32_NTDomain |
| Win32_NTEventlogFile |
| Win32_NTLogEvent |
| Win32_NTLogEventComputer |
| Win32_NTLogEventLog |
| Win32_NTLogEventUser |
| Win32_OperatingSystem |
| Win32_OperatingSystemAutochkSetting |
| Win32_OperatingSystemQFE |
| Win32_OSRecoveryConfiguration |
| Win32_PageFile |
| Win32_PageFileElementSetting |
| Win32_PageFileSetting |
| Win32_PageFileUsage |
| Win32_PingStatus |
| Win32_PrinterShare |
| Win32_PrivilegesStatus |
| Win32_Process |
| Win32_ProcessStartTrace |
| Win32_ProcessStartup |
| Win32_ProcessStopTrace |
| Win32_ProcessTrace |
| Win32_ProgramGroup |
| Win32_ProgramGroupContents |
| Win32_ProgramGroupOrItem |
| Win32_ProtocolBinding |
| Win32_Proxy |
| Win32_QuickFixEngineering |
| Win32_QuotaSetting |
| Win32_Registry |
| Win32_ScheduledJob |
| Win32_SecurityDescriptor |
| Win32_SecuritySetting |
| Win32_SecuritySettingAccess |
| Win32_SecuritySettingAuditing |
| Win32_SecuritySettingGroup |
| Win32_SecuritySettingOfLogicalFile |
| Win32_SecuritySettingOfLogicalShare |
| Win32_SecuritySettingOfObject |
| Win32_SecuritySettingOwner |
| Win32_ServerConnection |
| Win32_Service |
| Win32_ServerSession |
| Win32_Session |
| Win32_SessionConnection |
| Win32_SessionProcess |
| Win32_ShadowCopy |
| Win32_ShadowProvider |
| Win32_ShadowStorage |
| Win32_ShadowBy |
| Win32_ShadowFor |
| Win32_ShadowOn |
| Win32_ShadowVolumeSupport |
| Win32_ShadowDiffVolumeSupport |
| Win32_ShadowContext |
| Win32_Share |
| Win32_ShareToDirectory |
| Win32_ShortcutFile |
| Win32_SID |
| Win32_SIDandAttributes |
| Win32_StartupCommand |
| Win32_SubDirectory |
| Win32_SystemAccount |
| Win32_SystemBootConfiguration |
| Win32_SystemConfigurationChangeEvent |
| Win32_SystemDesktop |
| Win32_SystemDevices |
| Win32_SystemDriver |
| Win32_SystemLoadOrderGroups |
| Win32_SystemLogicalMemoryConfiguration |
| Win32_SystemNetworkConnections |
| Win32_SystemOperatingSystem |
| Win32_SystemPartitions |
| Win32_SystemProcesses |
| Win32_SystemProgramGroups |
| Win32_SystemResources |
| Win32_SystemServices |
| Win32_SystemSetting |
| Win32_SystemSystemDriver |
| Win32_SystemTimeZone |
| Win32_SystemTrace |
| Win32_SystemUsers |
| Win32_Thread |
| Win32_ThreadStartTrace |
| Win32_ThreadStopTrace |
| Win32_ThreadTrace |
| Win32_TimeZone |
| Win32_TokenGroups |
| Win32_TokenPrivileges |
| Win32_Trustee |
| Win32_UserAccount |
| Win32_UserDesktop |
| Win32_UserInDomain |
| Win32_UTCTime |
| Win32_Volume |
| Win32_VolumeChangeEvent |
| Win32_VolumeQuota |
| Win32_VolumeQuotaSetting |
| Win32_VolumeUserQuota |
| Win32_WindowsProductActivation |
Installed Applocations Classes |
| Win32_ActionCheck |
| Win32_ApplicationCommandLine |
| Win32_ApplicationService |
| Win32_Binary |
| Win32_BindImageAction |
| Win32_CheckCheck |
| Win32_ClassInfoAction |
| Win32_CommandLineAccess |
| Win32_Condition |
| Win32_CreateFolderAction |
| Win32_DuplicateFileAction |
| Win32_EnvironmentSpecification |
| Win32_ExtensionInfoAction |
| Win32_FileSpecification |
| Win32_FontInfoAction |
| Win32_IniFileSpecification |
| Win32_InstalledSoftwareElement |
| Win32_LaunchCondition |
| Win32_ManagedSystemElementResource |
| Win32_MIMEInfoAction |
| Win32_MoveFileAction |
| Win32_MSIResource |
| Win32_ODBCAttribute |
| Win32_ODBCDataSourceAttribute |
| Win32_ODBCDataSourceSpecification |
| Win32_ODBCDriverAttribute |
| Win32_ODBCDriverSoftwareElement |
| Win32_ODBCDriverSpecification |
| Win32_ODBCSourceAttribute |
| Win32_ODBCTranslatorSpecification |
| Win32_Patch |
| Win32_PatchFile |
| Win32_PatchPackage |
| Win32_Product |
| Win32_ProductCheck |
| Win32_ProductResource |
| Win32_ProductSoftwareFeatures |
| Win32_ProgIDSpecification |
| Win32_Property |
| Win32_PublishComponentAction |
| Win32_RegistryAction |
| Win32_RemoveFileAction |
| Win32_RemoveIniAction |
| Win32_ReserveCost |
| Win32_SelfRegModuleAction |
| Win32_ServiceControl |
| Win32_ServiceSpecification |
| Win32_ServiceSpecificationService |
| Win32_SettingCheck |
| Win32_ShortcutAction |
| Win32_ShortcutSAP |
| Win32_SoftwareElement |
| Win32_SoftwareElementAction |
| Win32_SoftwareElementCheck |
| Win32_SoftwareElementCondition |
| Win32_SoftwareElementResource |
| Win32_SoftwareFeature |
| Win32_SoftwareFeatureAction |
| Win32_SoftwareFeatureCheck |
| Win32_SoftwareFeatureParent |
| Win32_SoftwareFeatureSoftwareElements |
| Win32_TypeLibraryAction |
Örnek uygulamamızda bilgisayarımızdaki hard disk, sürücü, işletim sistemi, bilgisayar, işlemci, BIOS, zaman dilimi, bellek, ekran kartı, process ve servis bilgilerini alacak ve uygulamamız üstünden bilgisayarda çalışan servisleri durdurup başlatacağız. İlk olarak projemize System.Management referansını ekleyelim:

Ardından ise System.Management namespace’ini kodumuzda using ile tanımlıyoruz:
| using System.Management; |
Formumuza birer treeview ve listview ekliyoruz. Bazı sistem bilgilerini alırken treeview bazılarını alırken listview kullanacağımız için ikisini de üst üste gelecek şekilde forma yerleştirip kullanılacakları zamanlarda visible property’lerini true ve/veya false olarak set edeceğiz. Formumuza bir menustrip ekledikten sonra aşağıdaki gibi öğeleri ekliyoruz:

Kodumuzda class level bir ManagementObjectSearcher (mos) nesnesi tanımlıyoruz. Ardından ise formumuzdaki listview’i dolduracağımız zaman kullanacağımız Listele metod’unu yazıyoruz:
| private void Listele(string query, ManagementObjectSearcher m, ListView lv, TreeView tv) { lv.Items.Clear(); lv.Visible = true; tv.Visible = false; m.Query = new ObjectQuery(query); foreach (ManagementObject mo in m.Get()) { foreach (PropertyData pd in mo.Properties) { if (mo[pd.Name] != null) { ListViewItem lvi = new ListViewItem(); System.Windows.Forms.ListViewItem.ListViewSubItem lvi2 = new System.Windows.Forms.ListViewItem.ListViewSubItem(); lvi.Text = pd.Name; lv.Items.Add(lvi); lvi2.Text = mo[pd.Name].ToString(); lvi.SubItems.Add(lvi2); } } } } |
Listele metodunda ilk olarak parametre geçirilen listview’in item’larını temizliyoruz. Sonra da listview’ın visible’ını true, treeview’ı kullanmayacağımız için de treeview’ın visible’ını false olarak set ediyoruz. Ardından parametre geçirdiğimiz ManagementObjectSearcher nesnesinin (m) Query property’sine yine parametre geçirdiğimiz string tipinde query değişkenini atıyoruz. Ardından ise ManagementObjectSearcher’ın (m) Get metodunu kullanarak her bir ManagementObject içinde foreach ile dolaşmaya başlıyoruz. Bu ManagementObject’lerin propertylerini ve değerlerini listview’e eklemek içinse ManagementObject nesnesinin (mo) Properties array’indeki her bir PropertyData nesnesini foreach ile alıyoruz. Management object’in ilgili PropertyData’sının değeri null değilse ilk olarak ilgili PropertyData’nın adını listview’e ekliyoruz. Ardından ise ManagementObject nesnesinin (mo) ilgili PropertyData’sının aldığı değeri de listview’daki her property’nin karşısına ekliyoruz.
| private void işletimSistemiBilgileriToolStripMenuItem_Click(object sender, EventArgs e) { Listele(“Select * from Win32_OperatingSystem”, mos, listView1, treeView1); } private void bilgisayarBilgileriToolStripMenuItem_Click(object sender, EventArgs e) private void işlemciBilgileriToolStripMenuItem_Click(object sender, EventArgs e) private void bIOSBilgileriToolStripMenuItem_Click(object sender, EventArgs e) private void zamanDilimiBilgileriToolStripMenuItem_Click(object sender, EventArgs e) private void bellekBilgileriToolStripMenuItem_Click(object sender, EventArgs e) private void ekranKartıBilgileriToolStripMenuItem_Click(object sender, EventArgs e) |
Şimdi de treeview’da göstereceğimiz hard disk, sürücü ve process bilgilerinin kodunu yazmaya geldi. İlk olarak treeview’ın nodelarını temizliyoruz ve formumuzdaki listview’ın visible property’sini false, treeview’ın visible property’sini true olarak set ediyoruz. Ardından class level tanımladığımız ManagementObjectSearcher nesnesinin (mos) Query property’sini set ediyoruz. Ardından ise ManagementObjectSearcher’ın Get metoduyla bütün ManagementObject’leri treeview’ın node’larına ekliyoruz. Ardından ise bir foreach içinde tekrar bu ManagementObject’lerde dolaşıyor ve Properties array’indeki PropertyData nesneleri için bir daha foreach yazıyoruz. Ardından ise ManagementObject’in Caption property’si treenode’ın text’ine eşitse, ilgili treenode’a ilgili PropertyData’nın adını ve değerini atıyoruz.
Hard disk, sürücü ve process bilgilerinin kodlarını bu şekilde yazabiliriz. Değişen tek şey ManagementObjectQuery’leri olacaktır.
| private void tsmiHardDiskBilgileri_Click(object sender, EventArgs e) { treeView1.Nodes.Clear(); listView1.Visible = false; treeView1.Visible = true; mos.Query = new ObjectQuery(“SELECT * From Win32_DiskDrive”); foreach (ManagementObject mo in mos.Get()) { treeView1.Nodes.Add(mo["Caption"].ToString(), mo["Caption"].ToString()); } foreach (TreeNode tn in treeView1.Nodes) { foreach (ManagementObject mo in mos.Get()) { foreach (PropertyData pd in mo.Properties) { if (mo["Caption"].ToString() == tn.Text) { if (mo[pd.Name] != null) { tn.Nodes.Add(pd.Name + “: “ + mo[pd.Name].ToString()); } } } } } } private void sürücüBilgileriToolStripMenuItem_Click(object sender, EventArgs e) foreach (TreeNode tn in treeView1.Nodes) foreach (TreeNode tn in treeView1.Nodes) |
Sırada bilgisayarda kurulu olan servisleri getireceğimiz metod var. ServisleriGetir adında bir metod oluşturuyoruz ve ilk olarak listview’ın öğelerini ve kolonlarını temizliyoruz. Ardından ise listview’ın visible property’sini true, treeview’ın visible property’sini false olarak set ediyoruz. Sonrasında listview’a 4 adet kolon ekliyor ve genişliklerini set ediyoruz.
Class level tanımladığımız ManagementObjectSearcher nesnesinin (mos) Query property’sini set ettikten sonra Get metoduyla Caption, State, StartName ve StartMode property’lerini her process için listview’a ekliyoruz. Service Bilgileri menustrip öğesinin click event’inde de ServisleriGetir metodunu çağırıyoruz:
| private void ServisleriGetir() { listView1.Items.Clear(); listView1.Columns.Clear(); listView1.Visible = true; treeView1.Visible = false; listView1.Columns.Add(“Caption”); |
| private string _servisAdi; private string _servisDurumu; private void listView1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { ContextMenu cm = new ContextMenu(); MenuItem mi = new MenuItem(); _servisAdi = listView1.GetItemAt(e.X, e.Y).Text; mos.Query = new ObjectQuery(“Select * from Win32_Service WHERE Caption = ‘” + _servisAdi + “‘”); foreach (ManagementObject mo in mos.Get()) { if (Convert.ToBoolean(mo["Started"])) { mi.Text = “Durdur”; _servisDurumu = “StopService”; } else { mi.Text = “Başlat”; _servisDurumu = “StartService”; } } cm.MenuItems.Add(mi); listView1.ContextMenu = cm; mi.Click += new EventHandler(mi_Click); } _servisAdi = “”; } |
void mi_Click(object sender, EventArgs e) { mos.Query = new ObjectQuery(“Select * from Win32_Service WHERE Caption = ‘” + _servisAdi + “‘”); ManagementObjectCollection moc = mos.Get(); foreach (ManagementObject mo in moc) { mo.InvokeMethod(_servisDurumu, null, null); } ServisleriGetir(); } |

Bu kısımda ise tüm WMI Class’larının özelliklerinin açıklamalarıyla beraber nasıl listelenebileceğini inceleyelim. Bunun için öncelikle bir uygulama yazıyoruz ve uygulamada bulunan combobox içine tüm WMI Class’larının isimlerini yüklüyoruz. Daha sonrasında ise bu combobox’tan seçilmiş olan class’a ait property’leri, bu property’lerin tiplerini ve açıklamalarını bir datatable’a doldurup girdde göstereceğiz.
Bunun için öncelikle combobox’ın SelectedIndexChanged event’ını aşağıdaki gibi yazıyoruz:
| private void cmbClasses_SelectedIndexChanged(object sender, EventArgs e) { string txt = cmbClasses.SelectedItem.ToString(); ManagementClass m = new ManagementClass(txt.Substring(txt.IndexOf(“-”)+1).Trim()); m.Options.UseAmendedQualifiers = true; DataTable dt = new DataTable(); dt.Columns.Add(“Name”, typeof(string)); dt.Columns.Add(“Type”, typeof(string)); dt.Columns.Add(“Description”, typeof(string)); foreach (PropertyData pd in m.Properties) { DataRow dr = dt.NewRow(); dr["Name"] = pd.Name; dr["Type"] = pd.Type.ToString(); try { dr["Description"] =pd.Qualifiers["Description"].Value.ToString(); } catch (Exception ex) { } dt.Rows.Add(dr); } grdDescription.DataSource = dt; } |
Bu event’in içinde ise ilk önce ManagementClass tanımlarken constructor’unda WMI class’ının adını string olarak geçiyoruz. daha sonrasında ise dolduracağımız datatable şemasını oluşturuyor ve classda bulunan propert’ler içinde Management Class nesnesine ait Properties collection’unda bulunan her bir PropertyData nesnesi için datatable’ımıza row’ları eklemeye başlıyoruz. PropertyData nesnesinin Name property’si ile mevcut property’nin adını, Type property’si ile tipini alabiliyoruz. Bu property’e ait açıklamayı alabilmek için ise PropertyData nesnesindeki Qualifiers propertsinde bulunan Description değerini kullanabiliriz. Ancak bu değer her property’de dolu olmadığı için try catch bloğu içine yazılmıştır. Oluşturduğumuz bu datatable’ı DataGridView nesnesine bağlayarak kullanıcıya gösterilmesini sağlıyoruz.

Makale serimin bu son bölümünde .NET ile WMI bileşenlerinin nasıl sorgulanabileceğine dair bir örnek yaptım. Umarım faydalı olmuştur.
Işıl ORHANEL






















English
Türkçe