WMI proporciona una infraestructura de administración de sistemas estandarizada que se puede usar con varios clientes diferentes. Estos clientes van desde la herramienta de línea de comandos wmic.exe a System Center Operations Manager. Puede escribir sus propios clientes de WMI mediante la API de scripting de WMI, la API nativa de C++ o mediante los tipos del espacio de nombres de la biblioteca de clases System.Management de .NET Framework.
Creación de un cliente de WMI
La funcionalidad principal de WMI consiste en recuperar objetos del repositorio de WMI y examinar las propiedades de esos objetos. También puede optar por actualizar esas propiedades o llamar a métodos en ellas. En los ejemplos siguientes se muestra cómo realizar una tarea básica de administración de WMI: recuperar el nombre del equipo local.
Término
Descripción
Creación de un cliente con PowerShell
WMI y PowerShell están estrechamente integrados; por lo tanto, recuperar objetos de WMI con PowerShell es simplemente cuestión de llamar al cmdlet Get-WmiObject. Tenga en cuenta que, por motivos de coherencia, el primer fragmento de código indica explícitamente muchos de los valores predeterminados; en el segundo se supone que los valores predeterminados son correctos.
PowerShell
#explicitly states many of the default parameters $myComputer = Get-WmiObject -ComputerName "." -Namespace "root\cimv2" -Query "SELECT * FROM Win32_ComputerSystem" foreach ($computer in $myComputer) { "System Name: " + $computer.name }
#assumes the default values are correct
Get-WmiObject Win32_ComputerSystem | Format-Table "Name"
Creación de un cliente con VBScript
VBScript fue el lenguaje de scripting original de uso común con WMI. Aunque PowerShell se ha hecho más popular, muchos de los ejemplos de código existentes de esta documentación se han escrito en VBScript. Tenga en cuenta que este ejemplo de VBScript concreto indica explícitamente la ruta de acceso a la máquina local, así como el nivel de suplantación; aunque no es necesario, suele ser un procedimiento recomendado.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItem in colItems
Wscript.Echo "Computer Name: " & objItem.Name
Next
Este espacio de nombres contiene la solución actual para acceder a WMI con código administrado y se conoce como Infraestructura de administración de Windows (MI o WMIv2). Actualmente, MI es la tecnología admitida para crear clientes de administración administrados. Para más información, consulte Implementación de un cliente de MI administrado e Implementación de un cliente de MI nativo.
C#
using Microsoft.Management.Infrastructure; ... CimSession session = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem");
foreach (CimInstance cimObj in queryInstance)
{
Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString());
}
Este espacio de nombres contiene la solución original para acceder a WMI con código administrado. Aunque las clases System.Management siguen estando disponibles, las clases Microsoft.Management.Infrastructure suelen ser más eficientes y se escalan mejor. Por lo tanto, se recomienda usar las clases de MI en lugar de las clases de WMI originales.
C#
using Microsoft.Management.Infrastructure; ... CimSession session = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem");
foreach (CimInstance cimObj in queryInstance)
{
Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString());
}
En la siguiente tabla se enumeran los temas incluidos en esta sección.
Los proveedores de asociación permiten a los clientes de Instrumental de administración de Windows (WMI) atravesar y recuperar perfiles e instancias de clase asociadas de diferentes espacios de nombres.
Esta ruta de aprendizaje trata de Instrumental de administración de Windows (WMI) y Modelo de información común (CIM). Estas tecnologías permiten acceder a la información sobre un equipo. Además, ambas tecnologías proporcionan acceso local y remoto a información de administración del sistema operativo, el hardware del equipo y el software instalado.