Jak uruchomić zapytanie Configuration Manager

W Configuration Manager uruchamiasz SMS_Query zapytanie oparte na wystąpieniu zapytania, a następnie uruchamiając zapytanie WQL we właściwości obiektu SMS_QueryExpression.

Po utworzeniu zapytania WQL możesz uruchomić zapytanie synchronicznie lub asynchronicznie. Poniższy przykład jest synchroniczny. Aby uzyskać informacje na temat asynchronicznego uruchamiania zapytania, zobacz How to Perform an Asynchronous Configuration Manager Query by Using Managed Code and How to Perform an Asynchronous Configuration Manager Query by Using WMI (Jak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu usługi WMI). W tych przykładach zmień ciąg na select * from collectionExpression wartość właściwości.

Aby uruchomić zapytanie

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.

  2. SMS_Query Pobierz obiekt dla zapytania, które chcesz uruchomić.

  3. Uruchom zapytanie zidentyfikowane przez właściwość obiektu SMS_QueryExpression .

Przykład

Poniższa przykładowa metoda synchronicznie uruchamia zapytanie zidentyfikowane przez queryId parametr .

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.

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;  
    }  
}  

Przykładowa metoda ma następujące parametry:

Parametr Wpisać Opis
connection -Zarządzane: WqlConnectionManager
- VBScript: SWbemServices
Prawidłowe połączenie z dostawcą programu SMS.
queryID -Zarządzane: String
-Vbscript: String
Identyfikator zapytania. Aby uzyskać więcej informacji, zobacz właściwość SMS_Query klasy QueryID .

Kompilowanie kodu

Przykład języka C# ma następujące wymagania dotyczące kompilacji:

Obszary nazw

System

System.collections.generic

System.text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Zestawu

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

zabezpieczenia .NET Framework

Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.

Zobacz też

Informacje o zapytaniach Configuration Manager
Jak utworzyć zapytanie Configuration Manager
Jak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanego
Jak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu usługi WMI