Freigeben über


Abfragen von Verwaltungsdaten

Ein äußerst hilfreiches Feature von WMI ist die Fähigkeit, Daten abzufragen und Untergruppen der Informationen basierend auf vorgegebenen Kriterien abzurufen. In einem verteilten Szenario wird die Abfrage aus Effizienzgründen dicht an der Informationsquelle (auf dem Computer, von dem die Daten stammen) ausgeführt, und nur die Ergebnisse werden über die Verbindung übermittelt. Weitere Informationen zu Abfragen in WMI finden Sie in der WMI-Dokumentation in MSDN.

Im folgenden Codebeispiel wird demonstriert, wie eine Abfrage mit Hilfe der ManagementObjectSearcher-Klasse aufgerufen werden kann. Die Abfrage kann entweder als Zeichenfolge in dem von WMI unterstützten WQL-Format angegeben oder mit Hilfe einer der verfügbaren Abfrageklassen konstruiert werden. In diesem Fall wird die SelectQuery-Klasse verwendet, um eine Anforderung ausschließlich für die Systemumgebungsvariablen anzugeben. Die Ergebnisse werden in einer aufzählbaren Auflistung zurückgegeben.

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

Siehe auch

Zugreifen auf Verwaltungsdaten mit Hilfe von System.Management | Abrufen von Verwaltungsobjektauflistungen | Abonnieren und Verwenden von Verwaltungsereignissen | Ausführen von Methoden für Verwaltungsobjekte | Remote- und Verbindungsoptionen | Verwenden von Objekten mit starkem Typ