Creación de jerarquías en WMI
El espacio de nombres de WMI es un objeto de programación que define el ámbito de un conjunto de clases e instancias. Las clases del proveedor de WMI deben definirse dentro de un espacio de nombres.
Los espacios de nombres describen diferentes entornos administrados, como el entorno de SMS. Dado que las clases e instancias de un esquema definen los componentes de un entorno administrado, cada nuevo esquema requiere un nuevo espacio de nombres. Por ejemplo, el espacio de nombres root\cimv2 contiene las clases e instancias definidas en el esquema de Win32, así como las clases primarias del modelo de información común (CIM) de las que se hereda el esquema de Win32. Las clases de CIM se definen mediante el grupo de trabajo de administración distribuida (DMTF).
Nota
Para asegurarse de que todas las definiciones de clase de WMI para objetos administrados se restauran en el repositorio de WMI si este tiene un error y se reinicia, use la instrucción de preprocesador #pragma autorecover en el archivo Managed Object Format (MOF).
WMI define un espacio de nombres como una instancia de la clase del sistema __Namespace o cualquier clase que derive de __Namespace. La clase del sistema __Namespace tiene una sola propiedad denominada Name, que debe ser única dentro del ámbito del espacio de nombres primario. La propiedad Name también debe contener una cadena que comience por una letra. Todos los demás caracteres de la cadena pueden ser letras, dígitos o caracteres de subrayado. No se distinguen mayúsculas de minúsculas en ninguno de los caracteres.
Además de determinar el nombre único de un espacio de nombres secundario, el espacio de nombres primario de WMI puede proteger las instancias estáticas de las clases frente a modificaciones accidentales por parte de otros proveedores. Por ejemplo, es posible que le resulte conveniente anidar un nuevo espacio de nombres en un espacio de nombres existente para otro proveedor. Sin embargo, el proveedor original puede intentar actualizar todas las instancias de clase para que coincidan con un nuevo esquema. Al hacerlo, el proveedor original puede eliminar todos los subelementos secundarios de un espacio de nombres. Aunque esto puede ser una acción adecuada para el espacio de nombres de destino, puede afectar a las instancias de clase no relacionadas de un espacio de nombres secundario (es decir, sus propias clases de proveedor).
Por lo tanto, generalmente se recomienda crear y registrar el espacio de nombres como independiente de los espacios de nombres que no controla directamente. Esto es especialmente cierto si las clases se derivan solo de clases CIM generales u otras clases de su empresa. El espacio de nombres puede estar en Root, como en el siguiente caso:
Root/myCompany/myProduct
Por el contrario, si la nueva clase se deriva de la clase de otro proveedor, es posible que tenga que almacenar la clase en un subespacio de nombres de ese proveedor. Tenga en cuenta que esto expone la nueva clase a la eliminación accidental por parte del proveedor original.
WMI proporciona varias maneras diferentes de crear un espacio de nombres:
- Creación de un espacio de nombres secundario con código MOF
- Creación de un espacio de nombres del mismo nivel con código MOF
- Creación de un espacio de nombres con la API de WMI
Temas relacionados