Compartir a través de


Ejecución de una consulta de Configuration Manager

En Configuration Manager, ejecute una SMS_Query consulta basada obteniendo la instancia de consulta y, a continuación, ejecutando la consulta WQL en la propiedad object ExpressionSMS_Query.

Después de tener la consulta WQL, puede ejecutar la consulta de forma sincrónica o asincrónica. El ejemplo siguiente es sincrónico. Para obtener información sobre cómo ejecutar la consulta de forma asincrónica, vea Cómo realizar una consulta de Configuration Manager asincrónica mediante código administrado y Cómo realizar una consulta de Configuration Manager asincrónica mediante WMI. En estos ejemplos, cambie la select * from collection cadena al valor de la Expression propiedad .

Para ejecutar una consulta

  1. Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.

  2. Obtenga el SMS_Query objeto de la consulta que desea ejecutar.

  3. Ejecute la consulta identificada por la propiedad object SMS_QueryExpression .

Ejemplo

El siguiente método de ejemplo ejecuta sincrónicamente la consulta identificada por el queryId parámetro .

Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de 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;  
    }  
}  

El método de ejemplo tiene los parámetros siguientes:

Parámetro Tipo Descripción
connection -Administrado: WqlConnectionManager
- VBScript: SWbemServices
Una conexión válida al proveedor de SMS.
queryID -Administrado: String
-Vbscript: String
Identificador de consulta. Para obtener más información, vea la propiedad class SMS_QueryQueryID .

Compilar el código

El ejemplo de C# tiene los siguientes requisitos de compilación:

Espacios de nombres

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Ensamblado

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programación sólida

Para obtener más información sobre el control de errores, consulte Acerca de los errores de Configuration Manager.

Seguridad de .NET Framework

Para obtener más información sobre la protección de aplicaciones Configuration Manager, consulte Configuration Manager administración basada en roles.

Consulta también

Acerca de las consultas de Configuration Manager
Creación de una consulta de Configuration Manager
Cómo realizar una consulta de Configuration Manager asincrónica mediante código administrado
Cómo realizar una consulta de Configuration Manager asincrónica mediante WMI