共用方式為


新增 WMI 屬性

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

在MOF中定義屬性

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

屬性必須具有數據類型。 Win32_Process 屬性的 Handle 的數據類型是 字串,而 PageFaults 的數據類型是 uint32。 如果屬性只能有兩種狀態,屬性的數據類型通常會設定為 布爾值

屬性也可能是陣列。 例如,Win32_Trustee 的安全性標識碼 (SID) 屬性是包含 SID 的位元組陣列(uint8)。 屬性可以包含內嵌物件,這些物件是另一個 WMI 類別之一或多個實例的參考。 (自定義存取控制清單,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 關鍵字的詳細資訊,請參閱 MOF資料類型WQL (適用於 WMI 的 SQL)

針對 C++ 和受控物件格式(MOF)程式碼,您會在宣告類別時同時宣告類別的屬性。

定義屬性

  • 在類別描述的大括弧之間,包含屬性數據類型、名稱和選擇性的預設值和限定符。

    class MyClass 
    {
        [key] string   strProp;
        sint32         dwProp1 = 21;
        uint32         dwProp2;
    };
    

    上述範例中的 MyClass 類別有三個屬性:字元字串、32 位帶正負號的整數和 32 位不帶正負號的整數。 每個屬性都會指派不區分大小寫的名稱和MOF數據類型。

    Key 限定詞將字串屬性定義為能夠唯一識別類別實例的關鍵屬性。 如需限定符的詳細資訊,請參閱 添加限定符

建立類別