Makale Özeti

İş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. Bu kısımda ise çok sıklıkla kullanılan VMI classlarından bazılarını inceleyeceğiz.

Makale

Makale serimin ikinci kısmında sıklıkla kullanılan WMI class'larından diğer bazılarını inceleyeceğiz. Bunlar Win32_LogicalDisk, Win32_OperatingSystem, Win32_Process, Win32_Processor class'ları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:
0 - Cihaz düzgün çalışıyor.
1 - Cihaz düzgün bir şekilde ayarlanmamış.
2 - Windows bu cihaz için sürücüyü yükleyemiyor.
3 - Cihazın sürücüsü bozulmuş veya sistem bellek veya diğer kaynaklar açısından yetersiz durumda.
4 - Cihaz düzgün çalışmıyor. Sürücülerinden biri veya registry değerleri bozulmuş olabilir.
5 - Bu cihazın sürücüsü Windows'un yönetmediği veya kullanmadığı bir kaynağa ihtiyaç duyuyor.
6 - Cihazın boot ayarları diğer başka cihazlarla çakışıyor.
7 - Filtreleme yapılamıyor.
8 - Cihazın sürücü yükleyicisi bulunamıyor.
9 - Cihaz düzgün çalışmıyor çünkü cihazı kontrol eden firmware cihazın kaynaklarını hatalı belirliyor.
10 - Cihaz başlatılamıyor.
11 - Cihaz başarısız oldu.
12 - Cihazın kullanabileceği yeterli serbest kaynaklar bulunamıyor.
13 - Windows cihazın kaynaklarını doğrulayamıyor.
14 - Cihaz bilgisayar yeniden başlatılana kadar düzgün çalışmayacak.
15 - Cihaz olası bir re-enumeration problemi yüzünden düzgün çalışmıyor.
16 – Windows bu cihazın kullandığı bütün kaynakları doğrulayamıyor.
17 – Cihaz bilinmeyen bir kaynak türü istiyor.
18 – Cihazın sürücülerinin yeniden yüklenmesi gerekiyor.
19 – Registry değerleri bozulmuş olabilir.
20 – VXD Loader’ı kullanırken hata.
21 – Sistem Hatası: Cihazın sürücüsünü değiştirmeyi deneyin.
22 – Cihaz devre dışı bırakılmış.
23 - Sistem Hatası: Cihazın sürücüsünü değiştirmeyi deneyin. İşe yaramazsa cihazın dökümantasyonuna başvurun.
24 – Cihaz mevcut değil, düzgün çalışmıyor veya tüm sürücüleri yüklenmemiş.
25 – Windows hala cihazın kurulumunu yapıyor.
26 – Windows hala cihazın kurulumunu yapıyor.
27 – Cihaz geçerli bir log konfigürasyonuna sahip değil.
28 – Cihazın sürücüleri yüklü değil.
29 – Cihaz etkin değil çünkü cihazın firmware’i cihaza gerekli kaynakları sağlamadı.
30 – Cihaz başka bir cihazın kullandığı Interrupt Request (IRQ) kullanıyor.
31 – Cihaz düzgün çalışmıyor çünkü Windows cihaza gerekli sürücüleri yükleyemiyor.

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:
0 – Bilinmiyor
1 – Desteklenmiyor.
2 – Etkin değil
3 – Güç yönetimi özellikleri etkinleştirilmiş fakat hangi özelliğin etkin olduğu veya özellik hakkındaki bilgi mevcut değil.
4 – Cihazın güç durumunu kullanıma göre değiştirebileceğini belirtir. (Power State Settable)
5 – SetPowerState metodunun desteklendiğini belirtir. (Power Cycling Supported)
6 – SetPowerState metodunun PowerState değişkeni 5 olarak set edilerek invoke edilebileceğini belirtir. (Timed Power On Supported)
7 - SetPowerState metodunun PowerState değişkeni 5 olarak set edilerek ve Time parametresinin de spesifik bir tarih ve zamana veya zaman aralığına set edilerek invoke edilebileceğini belirtir.

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:
0 - Cihaz düzgün çalışıyor.
1 - Cihaz düzgün bir şekilde ayarlanmamış.
2 - Windows bu cihaz için sürücüyü yükleyemiyor.
3 - Cihazın sürücüsü bozulmuş veya sistem bellek veya diğer kaynaklar açısından yetersiz durumda.
4 - Cihaz düzgün çalışmıyor. Sürücülerinden biri veya registry değerleri bozulmuş olabilir.
5 - Bu cihazın sürücüsü Windows'un yönetmediği veya kullanmadığı bir kaynağa ihtiyaç duyuyor.
6 - Cihazın boot ayarları diğer başka cihazlarla çakışıyor.
7 - Filtreleme yapılamıyor.
8 - Cihazın sürücü yükleyicisi bulunamıyor.
9 - Cihaz düzgün çalışmıyor çünkü cihazı kontrol eden firmware cihazın kaynaklarını hatalı belirliyor.
10 - Cihaz başlatılamıyor.
11 - Cihaz başarısız oldu.
12 - Cihazın kullanabileceği yeterli serbest kaynaklar bulunamıyor.
13 - Windows cihazın kaynaklarını doğrulayamıyor.
14 - Cihaz bilgisayar yeniden başlatılana kadar düzgün çalışmayacak.
15 - Cihaz olası bir re-enumeration problemi yüzünden düzgün çalışmıyor.
16 – Windows bu cihazın kullandığı bütün kaynakları doğrulayamıyor.
17 – Cihaz bilinmeyen bir kaynak türü istiyor.
18 – Cihazın sürücülerinin yeniden yüklenmesi gerekiyor.
19 – Registry değerleri bozulmuş olabilir.
20 – VXD Loader’ı kullanırken hata.
21 – Sistem Hatası: Cihazın sürücüsünü değiştirmeyi deneyin.
22 – Cihaz devre dışı bırakılmış.
23 - Sistem Hatası: Cihazın sürücüsünü değiştirmeyi deneyin. İşe yaramazsa cihazın dökümantasyonuna başvurun.
24 – Cihaz mevcut değil, düzgün çalışmıyor veya tüm sürücüleri yüklenmemiş.
25 – Windows hala cihazın kurulumunu yapıyor.
26 – Windows hala cihazın kurulumunu yapıyor.
27 – Cihaz geçerli bir log konfigürasyonuna sahip değil.
28 – Cihazın sürücüleri yüklü değil.
29 – Cihaz etkin değil çünkü cihazın firmware’i cihaza gerekli kaynakları sağlamadı.
30 – Cihaz başka bir cihazın kullandığı Interrupt Request (IRQ) kullanıyor.
31 – Cihaz düzgün çalışmıyor çünkü Windows cihaza gerekli sürücüleri yükleyemiyor.

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:
0 – Bilinmiyor
1 – Desteklenmiyor.
2 – Etkin değil
3 – Güç yönetimi özellikleri etkinleştirilmiş fakat hangi özelliğin etkin olduğu veya özellik hakkındaki bilgi mevcut değil.
4 – Cihazın güç durumunu kullanıma göre değiştirebileceğini belirtir. (Power State Settable)
5 – SetPowerState metodunun desteklendiğini belirtir. (Power Cycling Supported)
6 – SetPowerState metodunun PowerState değişkeni 5 olarak set edilerek invoke edilebileceğini belirtir. (Timed Power On Supported)
7 - SetPowerState metodunun PowerState değişkeni 5 olarak set edilerek ve Time parametresinin de spesifik bir tarih ve zamana veya zaman aralığına set edilerek invoke edilebileceğini belirtir.

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.

Bir sonraki makalemde Win32_Service, Win32_VideoController WMI class'larını inceleyeceğiz. Ve tüm WMI Class'larının listesini gruplanmış bir şekilde gözden geçireceğiz.

Işıl ORHANEL