El marco para la información y las actividades de gestión en los sistemas operativos basados en Windows se denomina Windows Management Instrumentation (WMI).

WMI también proporciona datos de gestión a otros componentes del sistema operativo y productos, como SCOM (System Center Operations Manager) o Windows Remote Management.

¿Qué es Windows Management Instrumentation (WMI)?

WMI es una plataforma para gestionar y supervisar el sistema operativo y otras aplicaciones y servicios de Microsoft en ordenadores personales, servidores y otros dispositivos de red.

WMI ofrece una interfaz de programación completa, escalable y fácil de usar que proporciona acceso programático a la información y los servicios de los ordenadores gestionados por Microsoft y otros dispositivos de red.

Se utiliza para descubrir y supervisar el sistema operativo, los servicios y las aplicaciones del ordenador, así como los datos del registro y del sistema de archivos. También se utiliza para crear y gestionar scripts y programas que automatizan la gestión y administración del ordenador.

Emplea el lenguaje de programación WQL (Windows Query Language) para consultar información y realizar operaciones en el sistema operativo, los ordenadores y los dispositivos.

También le da acceso a PowerShell, una de las herramientas de administración más potentes y flexibles para Windows, que puede utilizar para crear scripts de automatización.

Además, WMI le permite construir aplicaciones personalizadas que proporcionan funcionalidades adicionales para la gestión y administración de sistemas y aplicaciones Windows.

Los usuarios que necesiten supervisar el estado de sus máquinas, realizar tareas básicas de solución de problemas y recopilar datos de rendimiento encontrarán WMI muy útil.

¿Cuál es la finalidad de WMI?

WMI es útil en una red empresarial de Windows porque simplifica el funcionamiento y la gestión de los componentes de la red empresarial mediante la entrega de datos a otros productos para una mayor mejora y escalabilidad.

El propósito general de WMI es proporcionar una experiencia de marco de gestión unificada en todos los aspectos de un sistema Windows, como por ejemplo:

  • Componentes del sistema operativo
  • Procesos e hilos
  • Servicios
  • Dispositivos
  • Controladores
  • Aplicaciones
  • Cuentas de usuario
  • Ajustes de seguridad

La invención de WMI permite reducir costes y tiempo en las operaciones y el desarrollo relacionados con los sistemas Windows. WMI también permite supervisar los eventos del sistema y recopilar datos de rendimiento. Estos datos pueden utilizarse para solucionar problemas o para realizar un seguimiento de las tendencias a lo largo del tiempo.

WMI se utiliza con mayor frecuencia para automatizar tareas administrativas y obtener acceso a datos sin tener que tratar directamente con el sistema operativo. Como resultado, WMI es una alternativa fantástica para administradores y desarrolladores de software que necesitan automatizar procesos que consumen mucho tiempo.

Todo, desde la supervisión del rendimiento del sistema hasta la adquisición de datos de las aplicaciones, es posible con él. Permite a los desarrolladores crear aplicaciones más inteligentes y al mismo tiempo garantiza que los administradores informáticos puedan completar sus tareas con el mínimo esfuerzo.

WMI proporciona una implementación de referencia para acceder a la información del sistema y es una herramienta clave para gestionar y supervisar los sistemas Windows. Es la piedra angular de Azure Machine Learning y AzureML, y se utiliza para impulsar una amplia gama de productos de terceros.

Uso de WMI

Windows Management Instrumentation (WMI) es la entrega de Microsoft de Web-Based Enterprise Management (WBEM), una iniciativa de la industria para desarrollar tecnologías estandarizadas para acceder a la información de gobierno corporativo.

WMI representa sistemas, aplicaciones, redes, dispositivos y otros componentes gestionados mediante el estándar industrial Common Information Model (CIM). El Grupo de Trabajo de Gestión Distribuida (DMTF) crea y mantiene el CIM.

El diseño de WMI es versátil y admite una amplia gama de tareas de administración y gestión, además de proporcionar una arquitectura flexible y extensible que permite a los fabricantes escribir nuevos proveedores de WMI para admitir nuevos dispositivos, aplicaciones y otros avances.

Otros usos son:

  • Gestión integral del sistema operativo Windows y de los dispositivos y servicios de red de Microsoft.
  • Puede utilizarse para conectar los ordenadores remotos para acceder a los datos de WMI
  • Descubrir información sobre el sistema, como qué programas se están ejecutando y qué servicios están configurados.
  • Recuperar información sobre las especificaciones del hardware y realizar acciones, como apagar o reiniciar el sistema.
  • Lanzar aplicaciones, iniciar, detener, configurar servicios y acceder a datos.
  • Los desarrolladores de aplicaciones de gestión pueden utilizar esta API para crear scripts en Visual Basic o Windows Scripting Host (WSH).

Arquitectura de WMI

WMI (Windows Management Instrumentation) es una tecnología de Microsoft presentada inicialmente en Windows 2000. Permite a los programadores construir programas de gestión que funcionen con cualquier sistema que admita WMI.

Veamos la arquitectura y la terminología de WMI.

El flujo de la arquitectura de WMI parte de los Objetos: Un componente como un disco duro, una tarjeta de red, un sistema operativo o un servicio es un objeto gestionado (que puede gestionarse mediante WMI). La infraestructura WMI recibe datos de un objeto a través de un proveedor. Éste proporciona y recibe mensajes de WMI y los entrega al objeto.

Un proveedor WMI se compone de una DLL y un archivo de formato de objeto gestionado (MOF) que supervisa los eventos y los datos de los objetos. WMI clasifica a los proveedores según la funcionalidad proporcionada por la interfaz del proveedor.

Existen numerosos proveedores WMI incorporados en Windows, entre los que se incluyen un proveedor de Active Directory, un proveedor WMI de Datos de configuración de arranque (BCD), un proveedor de Sistema de archivos distribuidos (DFS), un proveedor de Registro de eventos, un proveedor WMI de Hyper-V, un proveedor Win32, un proveedor de Registro y un proveedor SNMP.

La infraestructura WMI es un componente del sistema operativo Microsoft Windows conocido como servicio WMI (winmgmt). El núcleo WMI y el repositorio WMI son las dos partes de la infraestructura WMI.

El repositorio WMI es un almacenamiento jerárquico de datos organizado por espacios de nombres WMI, a menudo conocido como Modelo de Información Común (CIM). El servicio WMI establece una serie de espacios de nombres al iniciarse el sistema, entre los que se incluyen root default, rootcimv2 y root subscription.

Además, el servicio produce un conjunto predeterminado de definiciones de clases, que incluye las clases del sistema Win32 y WMI. Otros espacios de nombres WMI pueden ser creados por proveedores WMI adicionales, y cada espacio de nombres contiene varios objetos WMI.

El servicio W MI actúa como intermediario entre los proveedores, las aplicaciones de gestión y el repositorio WMI. En el repositorio sólo se almacenan datos estáticos sobre los objetos, como las clases definidas por los proveedores. WMI obtiene la mayoría de los datos dinámicamente del proveedor cuando un cliente los solicita.

Un consumidor WMI es una aplicación de gestión o un script que se comunica con la infraestructura WMI. Utilizando la API COM para WMI o la API de secuencias de comandos para WMI, un programa de gestión puede realizar consultas, desglosar datos, ejecutar métodos del proveedor y suscribirse a eventos.

WMI crea una interfaz estandarizada para recuperar datos de gestión de forma remota y local. La interfaz uniforme se abstrae de las interfaces de programación de aplicaciones (API) del sistema operativo. Esto permite a las aplicaciones y scripts recopilar datos de gestión sin necesidad de conocer la API del sistema operativo.

¿Cómo ejecutar una consulta WMI?

Una característica de la versatilidad de la plataforma WMI es la posibilidad de consultar su repositorio para obtener detalles sobre los datos de clase, instancia o esquema. Estos datos están relacionados con el inventario de sistemas locales y distantes, sistemas operativos, software y otras actividades administrativas.

Tipos de consultas

A grandes rasgos, existen dos tipos de consultas utilizadas para recuperar información del repositorio WMI:

Consulta Sincrónica: Es una consulta que mantiene el control del funcionamiento de su aplicación durante toda la consulta. Es más sencilla que una consulta asíncrona porque sólo requiere una llamada a la interfaz. Sin embargo, para grandes búsquedas o consultas basadas en la red, puede congelar su aplicación.

Consulta asíncrona: Cuando la velocidad de un sistema o de una red se verá afectada por la consulta de un grupo considerable de datos, es preferible utilizar una consulta asíncrona.

WQL (Lenguaje de consulta WMI)

Uno de los métodos populares para consultar WMI es el Lenguaje de Consulta WMI.

El SQL (Lenguaje de Consulta Estructurado) se utiliza en el entorno de bases de datos, y el WQL se utiliza en WMI. Ambos tienen una estructura sintáctica similar.

Select, From y Where son las sentencias WQL fundamentales que se utilizan para lanzar la consulta.

Una consulta WMI típica comienza seleccionando todas las propiedades de una clase WMI mediante el comando «Select». El asterisco («*») se utiliza para seleccionar todas las propiedades de una clase WMI. Se puede utilizar la palabra clave «De» para especificar la clase WMI a consultar después de seleccionar las propiedades (una o más propiedades, o todas ellas). Puede consultar la hoja de trucos SQL para conocer la sintaxis exacta.

Las consultas WQL pueden ejecutarse a través de WMI Tester (wbemtest.exe), que se instala por defecto con el sistema operativo Windows. Las consultas WMI también pueden ejecutarse a través de Windows PowerShell, VBScript y lenguaje C.

Tipo de consultas WQL

Las consultas WQL se utilizan para obtener tres tipos diferentes de información.

Consultas de objetos: Mediante estas consultas se puede obtener información sobre los recursos del sistema Windows.

Consultas de Eventos: Estas consultas se utilizan para realizar un seguimiento de los cambios en los registros de eventos, el inicio de procesos, el estado de los servicios, la disponibilidad de los ordenadores o la cantidad de espacio libre en disco, entre otras entidades o sucesos.

Consultas de esquema: Estas consultas se utilizan para obtener detalles sobre la estructura del esquema WMI.

Ejecución de una consulta

Veamos cómo ejecutar una consulta de objetos.

El siguiente método indica cómo comprobar los procesos WIN_32 en un sistema local.

La herramienta WMI Tester se ejecuta a través de la línea de comandos introduciendo wbemtest.exe.

Aparecerá la siguiente ventana.

Para conectarse al espacio de nombres WMI que contiene la clase que desea consultar(Root\Cimv2 en la mayoría de los casos): haga clic en la pestaña conectar.

Para ejecutar la consulta, haga clic en la pestaña «Consulta», como se muestra a continuación:

A continuación, introduzca la consulta para la que desea recuperar la información. Por ejemplo, recuperemos todos los procesos que se ejecutan en el sistema local ejecutando:

select * De Win32_process

Tras hacer clic en la pestaña aplicar, obtendrá los siguientes resultados

La ejecución anterior basada en GUI también puede llevarse a cabo en el símbolo del sistema a través de PowerShell:

En la plataforma PowerShell, para obtener la lista de todos los procesos win_32, se utiliza el siguiente código:

Get-WmiObject -Clase Win32_Process

Para obtener todos los parámetros de consulta de PowerShell, visite la página de gestión de Microsoft PowerShell.

Para ejecutar esta consulta en lenguaje VBScript y C, la página de documentación de Microsoft le proporcionará información completa.

Otro método para consultar el repositorio WMI es a través del comando CMD:

  • Ejecute CMD desde un símbolo del sistema
  • Escriba WMIC e introduzca para iniciar el programa
  • A continuación, el símbolo del sistema cambiará a wmic:root\cli>.

Los administradores pueden ejecutar consultas WMI desde este prompt.

Por ejemplo, para cargar información sobre la CPU de un sistema local, el comando será

wmic:root\cli> WMIC CPU

Los resultados/información se mostrarán en el símbolo del sistema.

AddressWidth Architecture AssetTag Availability Caption Characteristics ConfigManagerErrorCode ConfigManagerUserConfig CpuStatus CreationClassName CurrentClockSpeed CurrentVoltage DataWidth Description DeviceID ErrorCleared ErrorDescription ExtClock Family InstallDate L2CacheSize L2CacheSpeed L3CacheSize L3CacheSpeed LastErrorCode Level LoadPercentage Manufacturer MaxClockSpeed Name                                      NumberOfCores NumberOfEnabledCore NumberOfLogicalProcessors OtherFamilyDescription PartNumber PNPDeviceID PowerManagementCapabilities PowerManagementSupported ProcessorId ProcessorType Revision Role SecondLevelAddressTranslationExtensions SerialNumber SocketDesignation Status StatusInfo Stepping SystemCreationClassName SystemName ThreadCount UniqueId UpgradeMethod Version VirtualizationFirmwareEnabled VMMonitorModeExtensions VoltageCaps
64 9 A rellenar por O.E.M. 3 Familia Intel64 6 Modelo 142 Escalonado 10 252 1 Win32_Processor 1801 7 64 Familia Intel64 6 Modelo 142 Escalonado 10 CPU0 100 205 1024 6144 0 6 31 GenuineIntel 1801 CPU Intel(R) Core(TM) i5-8250U @ 1.60GHz 4 4 8 A rellenar por O.E.M. FALSE BFEBFBFF000806EA 3 CPU TRUE A rellenar por O.E.M. U3E1 OK 3 Win32_ComputerSystem RENEE-HP 8 51 FALSE TRUE

Para obtener más información sobre los alias y verbos de WMIC, visite Microsoft wmic.

Preguntas frecuentes sobre WMI

¿Cuáles son los puertos utilizados en WMI?

Los puertos utilizados son 49152 y 65535. El modelo de objetos de componentes distribuidos (DCOM), en el que se basa WMI, emplea por defecto un puerto TCP elegido al azar para las conexiones entre el rango de 49152 y 65535.

¿Está WMI obsoleto?

WMI sigue siendo compatible. A partir de Windows 10, versión 21H1, y del lanzamiento semestral del canal 21H1 de Windows Server, el programa de línea de comandos WMI (WMIC) ya no es compatible.

¿Qué son las herramientas de supervisión de WMI?

Hay muchas herramientas disponibles para supervisar WMI. Sin embargo, algunas son especialmente populares:
SolarWinds WMI Monitor con Server and Application Monitor
Paessler WMI Service Sensor con PRTG
Nagios XI
Sapien WMI Explorer
Herramientas gratuitas son WMI Explorer, Adrem Free WMI Tools

Cómo solucionar problemas de WMI

Es posible que vea errores que van desde clases que faltan hasta violaciones de acceso al intentar acceder a datos locales o remotos de WMI en una aplicación o script. Consulte la guía de solución de problemas de WMI de Microsoft para obtener soluciones a dichos errores.

Conclusión

En general, Windows Management Instrumentation es una herramienta potente que puede utilizarse para manejar una amplia gama de diversas funciones relacionadas con el sistema Windows. WMI puede ser una herramienta muy útil para cualquiera que trabaje con sistemas Windows, a pesar de que inicialmente pueda parecer intimidante.