Freigeben über


Ausführen einer Configuration Manager Abfrage

In Configuration Manager führen Sie eine SMS_Query basierende Abfrage aus, indem Sie die Abfrageinstanz abrufen und dann die WQL-Abfrage in der SMS_Query Objekteigenschaft Expression ausführen.

Nachdem Sie über die WQL-Abfrage verfügen, können Sie die Abfrage entweder synchron oder asynchron ausführen. Das folgende Beispiel ist synchron. Informationen zum asynchronen Ausführen der Abfrage finden Sie unter How to Perform an Asynchronous Configuration Manager Query by Using Managed Code and How to Perform an Asynchronous Configuration Manager Query by Using WMI.For information about run the query asynchron, see How to Perform an Asynchronous Configuration Manager Query by Using Managed Code and How to Perform an Asynchronous Configuration Manager Query by Using WMI. Ändern Sie in diesen Beispielen die select * from collection Zeichenfolge in den Expression Eigenschaftswert.

So führen Sie eine Abfrage aus

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.

  2. Rufen Sie das SMS_Query -Objekt für die Abfrage ab, die Sie ausführen möchten.

  3. Führen Sie die abfrage aus, die durch die SMS_Query Objekteigenschaft Expression identifiziert wird.

Beispiel

Die folgende Beispielmethode führt die durch den queryId -Parameter identifizierte Abfrage synchron aus.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.

Sub RunQuery(connection, queryId)  
    Dim query  
    Dim queryResults  
    Dim queryResult  

    ' Get query.  
    Set query=connection.Get("SMS_Query.QueryID='" & queryId  & "'" )  

    If err.number<>0 Then  
        WScript.echo "Couldn't get Queries"  
        Exit Sub  
    End If  

    ' Run query.  
    WScript.echo query.Name  
    WScript.echo "----------------------------------"  

    Set queryResults=connection.ExecQuery(query.Expression)  
    For Each queryResult In queryResults  
        wscript.echo "     " & queryResult.Name  
    Next  
    If queryResults.Count=0 Then  
        WScript.echo "      no query results"  
    End If  
End Sub  
public void RunQuery(WqlConnectionManager connection, string queryId)  
{  
    try  
    {  
        // Get the query.  
        IResultObject query = connection.GetInstance(@"SMS_Query.QueryID='" + queryId + "'");  

        Console.WriteLine(query["Name"].StringValue);  
        Console.WriteLine("----------------------------------");  

        // Get the query results.  
        IResultObject queryResults = connection.QueryProcessor.ExecuteQuery(query["Expression"].StringValue);  

        bool resultsFound = false;  
        foreach (IResultObject queryResult in queryResults)  
        {  
            resultsFound = true;  
            Console.WriteLine(queryResult["Name"].StringValue);  
        }  
        if (resultsFound == false)  
        {  
            Console.WriteLine("     No query results");  
        }  
    }  
    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed to run query: " + ex.Message);  
        throw;  
    }  
}  

Die Beispielmethode verfügt über die folgenden Parameter:

Parameter Typ Beschreibung
connection -Verwalteten: WqlConnectionManager
– VBScript: SWbemServices
Eine gültige Verbindung mit dem SMS-Anbieter.
queryID -Verwalteten: String
-Vbscript: String
Ein Abfragebezeichner. Weitere Informationen finden Sie unter der SMS_Query Klasseneigenschaft QueryID .

Kompilieren des Codes

Das C#-Beispiel hat die folgenden Kompilierungsanforderungen:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuste Programmierung

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.

.NET Framework-Sicherheit

Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.

Siehe auch

Informationen zu Configuration Manager Abfragen
Erstellen einer Configuration Manager Abfrage
Ausführen einer asynchronen Configuration Manager Abfrage mithilfe von verwaltetem Code
Ausführen einer asynchronen Configuration Manager Abfrage mithilfe von WMI