設計受管理的物件格式(MOF)類別
WMI 提供者 是由管理物件格式(MOF)檔案和 DLL 檔案組成。 MOF 檔案會定義提供者實作提供數據的類別。
MOF 類別定義是由 mofcomp 公用程式所編譯,並儲存在 WMI 存放庫,也稱為 Common Information Model (CIM) 存放庫。 建立類別的較不常見方式是透過 WMI COM API 的方法。
注意
若要確保 Managed 物件的所有 WMI 類別定義都會還原至 WMI 存放庫, 如果 WMI 失敗並重新啟動,請使用 MOF 檔案中的 #pragma 自動復原 預處理器指令。
本主題將討論下列各節:
定義要管理的物件
在您識別要管理的企業部分之後,請定義要管理的物件。 定義必須包含必要的數據,並可讓您正確地實作相關的商務規則。 您可以在細微層級定義物件,但最好決定定義中包含的詳細數據層級,以及提供足夠的詳細數據才能有用。 程式初期的快捷方式可能會節省時間,但未來可能會造成更多工作。
分散式管理工作組 (DMTF) 網站上的 CIM 教學課程包含設計程式的絕佳資訊。 如需詳細資訊,請參閱 www.dmtf.org。
當您開發和實作架構設計時,請考慮下列因素:
限定 符
限定符提供有關如何描述類別、對象、屬性、方法和參數的資訊;和它們會套用至類別和屬性定義。 在 MOF 程式碼中,限定符會以括號括住,而且可能包含 [key] 或 [association]。 如需詳細資訊,請參閱 新增限定符 和 WMI 限定符。
Namespace
命名空間是將類別和物件分組,以及控制範圍和可見性的邏輯單元。 一般而言,命名空間包含一組類別和對象,這些類別和物件代表特定環境中的 Managed 物件。 如需詳細資訊,請參閱 在 WMI 中建立階層。
物件
模型化物件可能是結構的實體或邏輯元素。 例如,您可以建立實體磁碟驅動器的模型,例如硬碟機,或是實體磁碟上可分割的邏輯磁碟。 使用類別來建立實體磁碟驅動器模型,然後將該類別擴充為邏輯磁碟模型的設計,比嘗試為每個磁碟類型建立個別類別的設計更具擴充性。
數據
數據可能是動態或靜態。 如果數據是動態的,您必須為其建立類別提供者。
若要讓使用者修改數據,您必須決定屬性是要允許直接寫入,還是只能透過使用者呼叫的方法來修改。
定義屬性或方法
一般而言,WMI 類別屬性類似於C++類別中的屬性。 如果程式代碼為數據片段實作的唯一動作是取得值或設定值,則數據應該定義為WMI 類別的屬性。
WMI 方法通常會執行變更 Managed 物件狀態的動作。 例如,如果動作是啟用或停用硬體物件的操作,那麼使用方法可能比建立讀寫屬性更合適。 您也可以決定建立顯示硬體狀態的屬性。
當您建立類別或實例時,可以包含批注。 使用這項技術來記錄您的類別,或說明您的程式設計技術。 如需更多資訊,請參閱 建立評論。 此外,您可以新增數據以限定數據物件的用途。 如需詳細資訊,請參閱 新增限定符。
物件之間的關聯
有兩種方式可以關聯物件:建立個別物件和用來關聯物件的關聯物件,或將一個物件嵌入在另一個物件中。 CIM 不支援內嵌物件,因此,若要符合 CIM 標準,您必須使用第一個方法。 不過,WMI 支援內嵌物件,因此請使用任一方法來代表對象之間的關聯性。 您可以在 Win32 類別中找到內嵌物件的範例。 例如,Win32_SecurityDescriptor 具有內嵌物件 Win32_ACE,其具有另一個內嵌物件,Win32_Trustee。
決定如何代表對象之間的關聯性時,請考慮下列事項:
- 如果實例本身很有用,則關聯效果最佳。 例如,Win32_Process 與 Win32_UserAccount。 如需詳細資訊,請參閱 宣告關聯類別。
- 如果實例不存在於父物件之外,則內嵌物件效果最佳。 例如,Win32_SecurityDescriptor 與 Win32_ACE。 如需詳細資訊,請參閱 在類別中內嵌物件。
相關主題