Share via


新增 WMI 屬性

WMI 類別中的屬性描述 Managed 物件的相關資料。 例如, HandleProcessIdPageFaults 定義為 Win32_Process 類別的屬性,並描述作業系統進程的各個層面。 如需詳細資訊,請參閱 撰寫屬性提供者

在 MOF 中定義屬性

WMI 屬性代表 物件中的層面或狀態。 您可以建立屬性,而不是建立只是取得和設定值的方法。 例如,Win32_NetworkAdapterNetEnabled屬性會顯示是否啟用或停用介面卡的狀態。 不過, EnableDisable 方法實際上會執行變更配接器狀態的動作。

屬性必須具有資料類型。 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 屬性的應用程式需要 SeSecurityPrivilegeSeRestorePrivilege許可權。 如需詳細資訊,請參閱 新增限定詞

最後,屬性必須具有名稱。 您可以將屬性命名為標準程式設計實務界限內的任何內容。 不過,有兩個主要例外狀況。 首先,您不得使用任何 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 資料類型。

    Key限定詞會將字串屬性定義為可唯一識別類別實例的索引鍵屬性。 如需限定詞的詳細資訊,請參閱 新增限定詞

建立類別