新增 WMI 屬性
WMI 類別中的屬性描述 Managed 物件的相關資料。 例如, Handle、 ProcessId和 PageFaults 定義為 Win32_Process 類別的屬性,並描述作業系統進程的各個層面。 如需詳細資訊,請參閱 撰寫屬性提供者。
在 MOF 中定義屬性
WMI 屬性代表 物件中的層面或狀態。 您可以建立屬性,而不是建立只是取得和設定值的方法。 例如,Win32_NetworkAdapter的NetEnabled屬性會顯示是否啟用或停用介面卡的狀態。 不過, Enable 和 Disable 方法實際上會執行變更配接器狀態的動作。
屬性必須具有資料類型。 Win32_Process屬性Handle的資料類型是字串,而 PageFaults的資料類型為uint32。 如果屬性只能有兩種狀態,屬性的資料類型通常會設定為 布林值。
屬性也可能是陣列。 例如, Win32_Trustee (SID) 屬性的安全性 識別碼是包含 SID 的位元組陣列 (uint8) 。 屬性可以包含内嵌物件,這些物件是另一個 WMI 類別之一或多個實例的參考。 例如,DACL) 和系統存取控制清單 (DACL 和 系統存取控制清單 (SACL) Win32_SecurityDescriptor屬性例如,是描述可存取群組和帳戶 之Win32_ACE 物件的陣列。 Win32_SecurityDescriptor中的Group屬性包含單一實例的參考Win32_Trustee。 如需詳細資訊,請參閱 在類別中内嵌物件。
屬性可能有數個 限定詞。 這些 限定詞 可以是 Common Information Model (CIM) 或 WMI 限定詞,或可能專屬於特定類型的類別,例如 效能計數器 類別限定詞。 限定詞會指定屬性的某些層面,例如,如果它是唯讀的,或如果沒有特定許可權就無法變更,則為 。 例如,嘗試寫入 WIN32_SECURITYDESCRIPTORDACL 屬性的應用程式需要 SeSecurityPrivilege 和 SeRestorePrivilege許可權。 如需詳細資訊,請參閱 新增限定詞。
最後,屬性必須具有名稱。 您可以將屬性命名為標準程式設計實務界限內的任何內容。 不過,有兩個主要例外狀況。 首先,您不得使用任何 MOF 關鍵字,例如 「class」,作為屬性名稱。 其次,您不得使用任何 WQL 關鍵字,例如 「group」,做為屬性名稱。 如需 MOF 和 WQL 關鍵字的詳細資訊,請參閱適用于 WMI 的 MOF 資料類型 和 WQL (SQL) 。
針對 C++ 和 Managed 物件格式 (MOF) 程式碼,您會在宣告類別的同時宣告類別的屬性。
定義屬性
在類別描述的大括弧之間包含屬性資料類型、名稱和選擇性的預設值和限定詞。
class MyClass { [key] string strProp; sint32 dwProp1 = 21; uint32 dwProp2; };
上述範例中的 MyClass 類別有三個屬性:字元字串、32 位帶正負號的整數,以及 32 位不帶正負號的整數。 每個屬性都會指派不區分大小寫的名稱和 MOF 資料類型。
相關主題