Compartir a través de


Consultar información de administración

Una característica muy útil de WMI es que se pueden realizar consultas de datos y recuperar subconjuntos de información en función de unos criterios determinados. En un escenario distribuido, la consulta se ejecuta cerca del origen de la información (en el equipo de donde proceden los datos) para que sea más eficaz y sólo los resultados se envían a través de una conexión. Para obtener más información acerca de las consultas en WMI, vea la documentación de WMI en MSDN.

En el ejemplo de código siguiente se demuestra cómo se puede realizar una consulta mediante la clase ManagementObjectSearcher. Se puede especificar la consulta como una cadena en el formato WQL admitido por WMI o se puede construir mediante una de las varias clases de consulta disponibles. En este caso, la clase SelectQuery se usa únicamente para especificar una solicitud de variables del entorno del sistema. Los resultados se devuelven en una colección que se puede enumerar.

using System;
using System.Management;

// This example demonstrates how to perform an object query.

public class QueryInstances {
    public static int Main(string[] args) {
      // Create a query for system environment variables only
      SelectQuery query = 
         new SelectQuery("Win32_Environment", "UserName=\"<SYSTEM>\"");

      // Initialize an object searcher with this query
      ManagementObjectSearcher searcher = 
         new ManagementObjectSearcher(query);

      // Get the resulting collection and loop through it
      foreach (ManagementBaseObject envVar in searcher.Get()) {
         Console.WriteLine("System environment variable {0} = {1}", 
            envVar["Name"], envVar["VariableValue"]);
      }
      return 0;
    }
}

[Visual Basic]
Imports System
Imports System.Management

' This example demonstrates how to perform an object query.

Public Class QueryInstances
   Overloads Public Shared Function Main(args() As String) As Integer
      ' Create a query for system environment variables only
      Dim query As _
         New SelectQuery("Win32_Environment", "UserName=""<SYSTEM>""")

      ' Initialize an object searcher with this query
      Dim searcher As New ManagementObjectSearcher(query)

      ' Get the resulting collection and loop through it
      Dim envVar As ManagementBaseObject
      For Each envVar In  searcher.Get()
       Console.WriteLine("System environment variable {0} = {1}", _
          envVar("Name"), envVar("VariableValue"))
      Next envVar
      Return 0
   End Function 
End Class

Vea también

Acceso a la información de administración con System.Management | Recuperar colecciones de objetos de administración | Suscribir y consumir eventos | Ejecutar métodos en objetos de administración | Interacción remota y opciones de conexión | Utilizar objetos con establecimiento inflexible de tipos