Создание иерархий в WMI

Пространство имен WMI — это программный объект, который определяет область для набора классов и экземпляров. Классы поставщиков WMI должны быть определены в пространстве имен.

Пространства имен описывают различные управляемые среды, например среду SMS. Поскольку классы и экземпляры схемы определяют компоненты управляемой среды, для каждой новой схемы требуется новое пространство имен. Например, пространство имен root\cimv2 содержит классы и экземпляры, определенные в схеме Win32, а также родительские классы Common Information Model (CIM), от которых наследуется схема Win32. Классы CIM определяются распределенной целевой группой управления (DMTF).

Примечание

Чтобы убедиться, что все определения классов WMI для управляемых объектов восстанавливаются в репозитории WMI в случае сбоя и перезапуска WMI, используйте инструкцию препроцессора #pragma автовосстановления в MOF-файле .

 

WMI определяет пространство имен как экземпляр системного класса __Namespace или любого класса, производного от __Namespace. Системный класс __Namespace имеет одно свойство с именем Name, которое должно быть уникальным в пределах область родительского пространства имен. Свойство Name также должно содержать строку, которая начинается с буквы. Все остальные символы в строке могут быть буквами, цифрами или символами подчеркивания. Регистр всех символов не учитывается.

Помимо определения уникального имени для дочернего пространства имен, родительское пространство имен WMI может защитить статические экземпляры классов от случайного изменения другими поставщиками. Например, может оказаться удобным вложение нового пространства имен в существующее пространство имен для другого поставщика. Однако исходный поставщик может попытаться обновить все экземпляры класса в соответствии с новой схемой. При этом исходный поставщик может удалить все дочерние элементы в пространстве имен. Хотя это действие может быть подходящим для целевого пространства имен, оно может повлиять на несвязанные экземпляры классов в дочернем пространстве имен (т. е. собственные классы поставщика).

Поэтому обычно рекомендуется создавать и регистрировать пространство имен как отдельное от пространств имен, которыми вы не управляете напрямую. Это особенно верно, если ваши классы являются производными только от общих классов CIM или других классов из вашей компании. Пространство имен может находиться в корневом пространстве имен, например:

Root/myCompany/myProduct

В отличие от этого, если новый класс является производным от класса другого поставщика, может потребоваться сохранить класс в подпространстве имен этого поставщика. Обратите внимание, что новый класс будет случайно удален исходным поставщиком.

WMI предоставляет несколько различных способов создания пространства имен:

Проектирование классов формата управляемых объектов (MOF)