Home > Windows > WMI – Windows Management Intrumentation. A vista de pajaro

WMI – Windows Management Intrumentation. A vista de pajaro

¿Que es WMI (Windows Management Instrumentation) y para que sirve?

WMI es la forma que ha tenido microsoft para implementar el concepto de Web-based enterprise management (WBEM), que a su vez es un tipo de estandar tecnológico para facilitar el acceso a la información relativa a la administración IT en un entorno corporativo o empresarial. Existe un modelo comun de información (CIM – Common information model) que es standard para representar sistemas, aplicaciones, redes, dispositivos y otros componentes administrados, en el contexto de una infraestructura de IT. CIM es desarrollado y mantenido por la DMTF (Distributed MAnagement Task Force http://www.dmtf.org/standards/wsman )

Dejando a un lado las definiciones y acercando el concepto al administrador desde un punto de vista útil, WMI nos permite tratar de una forma homogenea y simplificada cualquier tarea de administración desde un punto de vista programático. Esto nos permite la administración remota de máquinas, por ejemplo, teniendo la certeza que el efecto y comportamiento en los diferentes nodos sea exactamente el mismo, con independencia de su ubicación, su hardware, etc.

WMI, dispone de proveedores (WMI Providers http://msdn.microsoft.com/en-us/library/aa394570(VS.85).aspx) y clases (WMI Classes http://msdn.microsoft.com/en-us/library/aa394554(VS.85).aspx)

Uno de los problemas más frecuentes a la hora de entender qué puede hacer WMI por nosotros es que dado el nivel de abstracción necesario para entender su utilidad, no hay muchas herramientas totalmente gráficas que permitan acercar su uso al administrador, y en gran parte quedan ocultas tras interfaces modo comando (Como por ejemplo wmic)

El concepto no obstante es muy sencillo, WMI es un repositorio de información de lectura y escritura que no solo permite embeber en un framework la administración, sino que incluso permite modificarla (Si es aplicable en el caso). Además, la forma de utilizarla es común para todos los proveedores y clases WMI, por lo que aprendiendo a manejar con algun proveedor o clase, nos abrirá un mundo infinito de posibilidades.

¿Como puedo utilizar WMI?

Personalmente os recomiendo acercaros a WMI primero con una herramienta en modo comando llamada wmic, para entender el concepto general, en un solo host, pero, sin lugar a dudas, la mejor manera de utilizar WMI es integrarlo en nuestros scripts de administración, para poder retocar el alcance cada vez que sea necesario.

¿Qué lenguajes pueden hacer uso de WMI?

En realidad, actualmente casi todos los lenguajes pueden atacar a WMI para recuperar o fijar información. De todos ellos, me inclino por VBScript, ASP, o incluso powershell (Que ya hablaremos en otra ocasión de él)

¿Como hago una consulta WMI?

Como avanzabamos anteriormente, deberás aprender a manejar las clases y hay un lenguaje muy similar a SQL, llamado WQL http://msdn.microsoft.com/en-us/library/aa392902(VS.85).aspx que te permitirán manejar sin problemas las consultas y enumeraciones de los objetos WMI

He comenzado a utilizar WMI, pero como saber qué cosas puedo preguntar a WMI? de qué me vale tantas posibilidades, me pierdo y a menudo no encuentro como hacer las preguntas adecuadas.

Lo primero, no te preocupes, al principio es normal perderse en la abstracción del modelo, una vez te habitues te será mas sencillo. Mi consejo en este punto es que utilices la referencia WMI de microsoft para empezar: http://msdn.microsoft.com/en-us/library/aa394572(VS.85).aspx

En esta referencia, tienes disponibles las clases y proveedores de uso mas comun en tecnologias MS, Tomaremos a modo de ejemplo la clases Win32 :

http://msdn.microsoft.com/en-us/library/aa394084(VS.85).aspx

Dentro de cada una de ella verás la definición de la clase, continuando con un ejemplo práctico, tomaremos la Win32_Volume Class: http://msdn.microsoft.com/en-us/library/aa394102(VS.85).aspx

En cada clase, podemos encontrar propiedades y métodos. Los métodos son “funciones” que no devuelven valor, pero que permiten realizar una acción en el objetivo sobre el que se llaman. Hemos escogido esta clase, puesto que es bastante sencillo de entender el alcance de los datos que vamos a recuperar, así como de los métodos que se pueden utilizar.

Ejemplos de métodos en esta clase pueden ser:

chkdsk (Que permite ejecutar un chequeo de disco usando wMI)
AddMountPoint (Añadir punto de montaje)
Format (Formatear el volumen sobre el que se hace la llamada)
Defrag (Defragmentar)
Dismount (Desmontar)
mount (Montar)
[...]

Sin embargo, las propiedades son piezas de información interesantes desde un punto de vista de administración, por ejemplo y manteniendonos en la clase Win32_Volume, podemos recuperar valores como:

Capacity (Tamaño del volumen en Bytes)
Caption (Etiqueta del volumen)
Compressed (Si el volumen estuviese comprimido)
DriveLetter (letra de la unidad)
DriveType:
Value Meaning
0-Unknown
1-No Root Directory
2-Removable Disk
3-Local Disk
4-Network Drive
5-Compact Disk
6-RAM Disk

[...]

WMI Dispone del siguiente API:

http://msdn.microsoft.com/en-us/library/aa393260(VS.85).aspx

Para ejemplos, en la MSDN podras encontrar ayuda:

http://msdn.microsoft.com/en-us/library/aa394585(VS.85).aspx

Hasta la próxima entrega!

Categories: Windows Tags: , ,
  1. pabluria
    April 23rd, 2010 at 20:36 | #1

    Que buena intro!!!
    tenes mas info en español?
    gracias!!!

  1. July 31st, 2009 at 17:40 | #1