Instrumental de administración de Windows (WMI) es un componente del sistema operativo Windows que permite obtener acceso mediante programación a información de administración en un entorno empresarial. WMI en .NET Framework se basa en la tecnología WMI original y permite el mismo desarrollo de aplicaciones y proveedores, además de las ventajas que ofrece la programación en .NET Framework. Para obtener más información, vea Ventajas de WMI en .NET Framework.
Las clases .NET Framework que utilizan WMI se encuentran en los espacios de nombres System.Management y System.Management.Instrumentation. Sin embargo, las aplicaciones de código administrado, basadas en .NET Framework, presentan algunas limitaciones que no tienen las aplicaciones y los proveedores de WMI original. Para obtener más información, vea Limitaciones de WMI en .NET Framework.
Palabras clave
Calificador, proveedor, lenguaje de consulta WMI, consumidor de eventos, modelo de información común, asincrónico, semisincrónico, esquema Win32, aplicación de administración
Espacios de nombres
System.Management, System.Management.Instrumentation
Tecnologías relacionadas
Instrumental de administración de Windows (WMI)
WMI en .NET Framework se basa en la tecnología WMI original. Para obtener más información sobre WMI original, vea el artículo (en inglés) sobre WMI, en la documentación referente a Instrumental de administración de Windows de MSDN Library, en la dirección http://msdn.microsoft.com/library.
Información previa
La versión no administrada de WMI es la implementación de Microsoft de WBEM (Web-Based Enterprise Management), una iniciativa del sector desarrollada para normalizar la tecnología de administración de entornos informáticos empresariales. WMI utiliza clases basadas en el estándar del sector CIM (modelo de información común) para representar sistemas, procesos, redes, dispositivos y otros componentes empresariales.
WMI suministra un esquema de clases preinstalado que permite a secuencias de comandos o aplicaciones programadas con lenguajes de secuencias de comandos, Visual Basic o C++, supervisar y configurar aplicaciones, componentes de sistema o de red y hardware de una organización. Por ejemplo, las instancias de la clase Win32_Process representan todos los procesos de un equipo y la clase Win32_LogicalDisk puede representar los dispositivos de disco. Para obtener más información, vea el artículo (en inglés) sobre clases Win32, en la documentación referente a Instrumental de administración de Windows de MSDN Library, que se encuentra en la dirección http://msdn.microsoft.com/library.
La arquitectura de WMI consta de los niveles siguientes:
-
Los componentes de software cliente realizan operaciones mediante WMI, como leer detalles de administración, configurar sistemas y realizar suscripciones a eventos.
-
El administrador de objetos es un intermediario entre los proveedores y los clientes que proporciona ciertos servicios esenciales, como la publicación y suscripción estándar de eventos, el filtrado de eventos, motor de consultas y otros servicios.
-
Los componentes de software de proveedor capturan y devuelven datos activos a las aplicaciones cliente, procesan llamadas a métodos procedentes de los clientes y vinculan al cliente con la infraestructura que se está administrando.
Para obtener más información general sobre WMI y WMI .NET, vea Esquema de WMI y .NET Framework. Para obtener más información sobre clases, métodos y proveedores previamente suministrados, vea el artículo (en inglés) sobre WMI, en la documentación referente a Instrumental de administración de Windows de MSDN Library, que se encuentra en la dirección http://msdn.microsoft.com/library. Para obtener más información sobre los espacios de nombres System.Management y System.Management.Instrumentation, vea la Referencia de la biblioteca de clases de .NET Framework. .NET Framework también contiene información general de programación de .NET Framework.
Implementación de clases WMI .NET
WMI en .NET Framework se basa en la tecnología WMI y permite el mismo desarrollo de aplicaciones y proveedores, con las ventajas que ofrece .NET Framework. Para obtener más información, vea Ventajas de WMI en .NET Framework. Sin embargo, las aplicaciones de código administrado creadas en .NET Framework presentan algunas limitaciones que no tienen los proveedores de WMI original. Para obtener más información, vea Limitaciones de WMI en .NET Framework.
WMI organiza sus clases reinstaladas en espacios de nombres. Los espacios de nombres WMI, como root\cimv2 y root\default, no deben confundirse con los espacios de nombres .NET Framework System.Management y System.Management.Instrumentation. El espacio de nombres System.Management contiene WMI en clases .NET Framework para llevar a cabo operaciones WMI. El espacio de nombres System.Management.Instrumentation contiene las clases para agregar instrumental a la aplicación.
Los administradores y los programadores de TI puede utilizar las clases de System.Management para escribir aplicaciones que obtengan acceso a datos WMI en cualquier lenguaje .NET, como ASP.NET, C#, Visual Basic .NET o J#. Estas aplicaciones pueden:
-
Enumerar o recuperar una colección de datos de propiedad de instancia, como la propiedad FreeSpace de todas las instancias de Win32_LogicalDisk en todos los equipos de una red. Para obtener más información, vea "Win32_LogicalDisk" en la documentación referente a Instrumental de administración de Windows de MSDN Library, en la dirección http://msdn.microsoft.com/library.
-
Consultar datos de instancias seleccionadas.
WMI en .NET Framework utiliza el lenguaje de consulta de WMI original WQL, un subconjunto de SQL. Para obtener más información, vea el artículo (en inglés) sobre el lenguaje de consulta WQL, en la documentación referente a Instrumental de administración de Windows de MSDN Library, que se encuentra en la dirección http://msdn.microsoft.com/library.
-
Suscribirse a eventos, definidos como instancias de clases de eventos.
Se produce un evento cuando una aplicación instrumentada (proveedor) crea una instancia de una de sus clases de eventos.
Los desarrolladores pueden utilizar las clases de System.Management.Instrumentation para instrumentar su aplicación de manera que proporcione datos a WMI acerca del comportamiento de la aplicación.
La instrumentación implica que cree sus propias clases e instancias con propiedades y métodos que almacenan datos sobre la aplicación en WMI. Al establecer determinados atributos para clases, puede designarlos como instrumental. Por ejemplo, su aplicación puede exponer datos sobre su estado y rendimiento o uso de recursos. La aplicación también puede suministrar datos a WMI sobre los dispositivos con los que interactúa la aplicación. Puede crear clases y registrarlas con WMI para que los datos estén a disposición de otras secuencias de comandos y aplicaciones. Una aplicación instrumentada es un proveedor de datos para WMI que funciona del mismo modo que los proveedores en WMI original.
La funcionalidad de WMI en .NET Framework se logra a través de una serie de herramientas WMI integradas en el entorno de desarrollo Microsoft Visual Studio .NET. Por ejemplo, puede utilizarse Server Explorer Management Extension de Visual Studio .NET (que se puede descargar desde http://www.microsoft.com/downloads/details.aspx?familyid=62d91a63-1253-4ea6-8599-68fb3ef77de1) como ayuda para desarrollar aplicaciones de administración.
Sinopsis de las clases WMI .NET
En las siguientes tablas se enumeran las clases principales que deben implementarse para cada una de las áreas de tareas especificadas. En los casos pertinentes, también se enumeran las interfaces y los elementos de configuración asociados. Ésta no es una lista exhaustiva de las clases de cada espacio de nombres, sino que incluye todas las clases que se muestran en los temas prácticos.
Espacio de nombres System.Management
|
Área de tecnología
|
Clases/interfaces/elementos de configuración
|
| Obtener información de clases WMI | ManagementObject, ManagementClass |
| Consultar datos Consultar datos de forma asincrónica | SelectQuery, ManagementObjectSearcher, WqlObjectQuery, ObjectQuery ManagementObjectCollection, ManagementOperationObserver |
| Ejecutar métodos Ejecutar métodos de forma asincrónica | ManagementBaseObject ManagementOperationObserver |
| Recibir eventos Recibir eventos de forma asincrónica | WqlEventQuery, ManagementEventWatcher EventArrivedEventArgs, EventArrivedEventHandler, CompletedEventArgs, CompletedEventHandler |
| Conectarse a un equipo remoto | ConnectionOptions, ManagementScope |
Espacio de nombres System.Management.Instrumentation
Vea también