一般資訊模型
Common Information Model (CIM) 是可延伸的對象導向數據模型,其中包含企業不同部分的相關信息。 CIM 是分散式管理工作組維護的跨平臺標準(DMTF)。 透過 WMI,開發人員可以使用 CIM 來建立類別,這些類別代表硬碟、應用程式、網路路由器,甚至是使用者定義的技術,例如網路空調。 藉由檢視和變更 CIM 類別,主管可以控制企業的不同層面。 例如,管理員可以查詢代表桌面工作站的 CIM 類別實例。 管理員接著可以執行腳本來修改 CIM 工作站實例。 WMI 會將任何變更轉譯為工作站 CIM 類別實例的變更,以變更實際工作站。
CIM 是一種與語言無關的程式設計模型,使用面向對象技術來描述企業。 使用三個層級的父/子繼承,CIM 可以描述企業的一般和特定層面。 CIM 也會使用稱為「關聯」的技術,將企業模型的不同部分連結在一起,並使用架構來區分不同的管理環境。
CIM 的設計目的是在管理環境中呈現邏輯和實體物件的一致檢視。 CIM 代表使用名為 「class」 的物件導向建構的 Managed 物件。如同C++或 COM 類別,CIM 類別可以包含屬性來描述數據和描述行為的方法。 如同一組 COM 類別,CIM 不會繫結至任何平臺。 不過,WMI 包含 CIM 的延伸模組,描述Microsoft Windows作系統平臺。
CIM 會定義三個類別層級:
核心
核心類別代表套用至所有管理區域的Managed物件。 這些類別提供分析及描述受控系統的基本詞彙。 __Parameters 和 __SystemSecurity 類別是核心類別的範例。
常見
通用類別代表套用至特定管理區域的Managed物件。 不過,常見的類別與特定實作或技術無關。 通用類別是核心類別的延伸模組。 CIM_UnitaryComputerSystem 類別是通用類別的範例。
擴展
擴充類別代表受管理對象,這些對像是常見類別的技術特有新增專案。 擴充類別通常適用於特定平臺,例如 UNIX 或 Microsoft Win32 環境。 Win32_ComputerSystem 類別是擴充類別的範例。
開發人員可以從另一個類別衍生類別。 衍生類別代表父類別的特殊案例,並繼承父系的所有屬性和方法。 例如,Win32_ComputerSystem 繼承自 CIM_UnitaryComputerSystem。 繼承關聯性可以使用系統屬性 __Derivation、__Dynasty和 __SuperClass來判斷。 __Derivation 系統屬性是字串數位,列出整個繼承鏈結,包括根類別,也包含在 __Dynasty中。 __SuperClass 系統屬性會顯示目前類別的直接父代。
WMI 也支持關聯。 關聯是兩個或多個不同 WMI 類別之間的關聯性。 例如,執行中的工作站通常具有處理器。 WMI 關聯類別 Win32_ComputerSystemProcessor 將工作站類別 Win32_ComputerSystem 與處理器類別 Win32_Processor產生關聯。 不過,關聯類別不需要將兩個相依類別系結在一起。 事實上,關聯類別的主要目的是顯示不一定相依於彼此的類別之間的關聯性。 如需詳細資訊,請參閱 宣告關聯類別。
最後,WMI 支援架構的概念。 在 WMI 的內容中,架構是描述特定管理環境的類別群組。 Microsoft Windows 軟體開發工具包 (SDK) 使用兩個架構:CIM 架構和 Win32 架構。 CIM 架構類別名稱開頭為 CIM_,而 Win32 架構類別名稱開頭為 Win32_。 CIM 架構包含核心和通用類別的定義,而 Win32 架構則包含 Win32 環境通用之擴充類別的定義。 不過,第三方廠商可以建立自己的架構來描述廠商的特定需求。 由於架構的設計可無限擴充,因此開發人員一律可以新增類別來描述現有環境中的新 Managed 物件。 不過,為了簡單起見,大部分廠商都選擇建立繼承 CIM 或 Win32 架構之屬性的架構。