Introducción del Búho:
WMI significa
Windows
Management
Instrumentation
y aunque se
explicará mas detenidamente su significado en esta página Web
(Artículo de Marino Posadas), decir simplemente que podemos
aprovechar esta tecnología, para extraer desde nuestras aplicaciones
Access, información muy valiosa del entorno de Soft y Hard del PC
donde corre el código. Esta información será de todo tipo, tal y
como veremos posteriormente en los ejemplos realizados en Access
2000 por el Búho (Que tienes situados al final de esta página).
SIn mas preámbulos comenzamos, primero, con el significado y alcance
de WMI.
WMI por Marino Posadas, MVP Visual
.NET:
La aparición de Windows 2000 no sólo ha supuesto un cambio
importante en las posibilidades de administración del sistema
operativo, sino también un reto para el programador en nuevas
tecnologías, gracias a un conjunto de servicios que, en parte
extienden (COM+) y en parte introducen avances sobre lo disponible
bajo Win98/NT.
Una de esas
novedades es WMI (Windows Management
Instrumentation), el nombre que
Microsoft ha dado a su implementación de un estándar para la gestión
integrada de sistemas llamado Web
Based Enterprise
Management (gestión basada en la
web). Dicha información incluye información sobre el estado
de la memoria del sistema, inventarios de todas las aplicaciones
instaladas en un equipo o en un dominio, y mucha otra información de
cliente adicional.
Se ha
implementado para todas las plataformas de Windows (incluyendo
Windows 95), y permite que sistemas, aplicaciones, redes y
componentes sean representados utilizando un modelo de objetos
programable llamado CIM (Common
Information Model o Modelo
común de información), otro estándar publicado por la DMTF (Distributed
Management Task
Force).
Además de la
modelización de datos, WMI ofrece un
potente conjunto de servicios de base que incluyen consultas sobre
información genérica del sistema y aplicaciones y suscripción a
eventos (la capacidad que tiene el sistema de avisar al usuario
cuando se produzca una circunstancia predefinida por él). La
programación de estos servicios se basa en COM y el paquete de
desarrollo de WMI incluye herramientas para crear aplicaciones
cliente y proveedores WMI.
Requisitos del sistema
Para instalar
el paquete de desarrollo (WMI SDK), es necesario tener instalado
Windows 2000 ó Windows NT 4.0 SP5, además de Internet Explorer 5.0
(por la máquina virtual de Java). Debe de instalarse con permiso de
administrador bajo estas plataformas.
Para la
instalación de los servicios cliente, puede usarse Windows 2000,
Windows NT 4 SP4, Windows 98 o Windows 95 SR2. En cuanto a hardware,
se precisa un Pentium con 32MB de RAM, 30MB de espacio en disco,
tarjeta gráfica de 256 colores (resolución de 800/600) y tarjeta de
red. Finalmente, respecto al compilador, WMI está pensado para usar
Visual Studio 6.0.
Infraestructura de WMI
WMI consiste,
fundamentalmente, de dos elementos:
·
EL
software WMI (Winmgmt.exe) un componente que provee un acceso
homogéneo a las aplicaciones para la gestión de datos.
·
El
repositorio de objetos CIM, una central de almacenamiento de objetos
programables, que reflejan todo el sistema.
Pero la
utilización de WMI, supone la presencia de un programa (aplicación
gestora), que haga uso de los servicios proporcionados por WMI. Para
obtener la información, la aplicación realizará peticiones mediante
métodos de las COM API o bien de las Scripting API,
dos interfaces de programación que exponen al desarrollador un
conjunto de métodos de acceso a los servicios de WMI.
Mediante
estas API, el programador tiene acceso a un variado conjunto de
servicios, tales como inventarios de red, información de
configuración y utilización del sistema, respuesta a evento o la
puesta en marcha o detención de servicios del sistema. Para
conseguirlo, WMI soporta varias estrategias para la implementación
de aplicaciones de gestión de sistema:
·
Desde los navegadores, se pueden usar un conjunto de controles
ActiveX, para controlar la apariencia,
relaciones y comportamiento de los datos relativos a los objetos
manejados por la aplicación. También pueden utilizar ISAPI (Internet
Server API) para acceder a dichos servicios a través de HTML
Dinámico.
·
Las aplicaciones de bases de datos pueden utilizar el Adaptador ODBC
WMI, para fusionar las capacidades de gestión de datos ODBC con las
propias de WMI.
·
Las aplicaciones que hagan uso del Servicio de Directorio Activo
pueden utilizar WMI Active Directory
Service Interface
(ADSI), para integrar los servicios de directorio con los datos.
Mientras el
COM API está disponible directamente a los programadores de C++,
Scripting API puede ser usado por programadores que conozcan Visual
Basic (estándar o script) para
controlar o visualizar los objetos del CIM. Concretamente, WMI
suministra soporte para los siguientes lenguajes:
· Visual Basic
· Visual Basic para Aplicaciones (VBA Access)
· Visual Basic Scripting
· Microsoft® JScript®
Proveedores WMI
Los
proveedores WMI actúan como intermediarios entre WMI y los objetos
manejados. Cuando WMI recibe una petición de una aplicación acerca
de información que no está disponible en el repositorio CIM o en el
caso de necesitarse una notificación sobre un evento que no soporta
CIM directamente, se emite esa petición al proveedor. Cada proveedor
suministra información específica de su dominio. Desde el punto de
vista de la programación, dichos servidores son componentes DCOM (ActiveX
DLL, servicios de NT/2000 locales o remotos o ejecutables estándar).
También es posible crear proveedores específicos de usuario para
aplicaciones de terceras partes.
CIM
La labor de
CIM es presentar al programador un modelo consistente y uniforme de
todos los tipos de objetos físicos y lógicos de un sistema. Los
objetos se representan mediante clases que contienen propiedades y
métodos para describir sus características y comportamiento.
En CIM se
definen 3 niveles de clases:
·
Clases que representan objetos pertenecientes a todas las áreas
administrativas de un sistema.
·
Clases que representan objetos de áreas específicas, pero
independientes de una implementación o tecnología concretas.
·
Clases que representan objetos dependientes de una tecnología dada
(por ejemplo, específicas de UNIX o de Win32).
Pueden
existir clases derivadas, que heredan de sus ancestros tanto métodos
como propiedades.
El programa WinMgmt.exe
Winmgt.exe es
el componente principal de la infraestructura de gestión de WMI.
Bajo Windows 98, funciona como un ejecutable independiente. Bajo
Windows NT/2000, como un servicio. Cuando una aplicación de gestión
WMI solicita un dato, el programa determina si éste se encuentra en
el repositorio CIM o es necesario obtenerlo a partir de un
proveedor. Como norma general, los datos estáticos suelen
encontrarse siempre en el repositorio CIM, mientras que los
dinámicos requieren el concurso de un proveedor.
Además de
estas labores, WMI suministra los siguientes servicios adicionales:
·
Soporte de notificación de eventos
·
Lenguaje de consultas
·
Soporte de seguridad
·
Almacenamiento de funciones de múltiples lenguajes en el CIM
WMI en la práctica, trabajando bajo Access:
La explicación completa de este sistema de gestión de entornos de
trabajo está fuera del ámbito de ésta introducción, si bien puede
encontrarla el lector en el SDK de WMI accesible desde la dirección
de Internet:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwmi/html/mngwmi.asp
No obstante,
para completar esta visión inicial del producto, el Búho ha
construido algunos ejemplos de funcionamiento, que ayudarán a
comprender sus posibilidades.
- Datos técnicos del procesador:
Bajarse Ejemplo
- Datos técnicos de los adaptadores de
tu equipo:
Bajarse Ejemplo
- Datos del sistema, placa, memoria:
Bajarse Ejemplo
- Procesos activos en Windows con la
posibilidad de «matarles»:
Bajarse ejemplo
- Servicios de Windows:
Bajarse ejemplo
- Datos del sistema Operativo, pero
con API:
Bajarse ejemplo
Enlaces de Interés:
Windows Management Instrumentation Downloads:
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/wmi.asp
|