Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En Configuration Manager, se ejecuta una SMS_Query consulta basada obteniendo la instancia de consulta y, después, ejecutando la consulta WQL en la propiedad de SMS_Query objetoExpression.
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 más información sobre cómo ejecutar la consulta de forma asincrónica, consulte Cómo realizar una consulta asincrónica de Configuration Manager mediante código administrado y Cómo realizar una consulta asincrónica de Configuration Manager mediante WMI. En estos ejemplos, cambie la select * from collection cadena por el valor de propiedad Expression .
Para ejecutar una consulta
Configure una conexión al proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.
Obtenga el
SMS_Queryobjeto de la consulta que desea ejecutar.Ejecute la consulta identificada por la propiedad de
SMS_QueryobjetoExpression.
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, consulte 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 siguientes parámetros:
| Parámetro | Tipo | Descripción |
|---|---|---|
connection |
- Administrado: WqlConnectionManager- VBScript: SWbemServices |
Una conexión válida con el proveedor de SMS. |
queryID |
- Administrado: String- VBScript: String |
Identificador de consulta. Para obtener más información, consulte 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 acerca del control de errores, consulte Acerca de los errores de Configuration Manager.
Seguridad de .NET Framework
Para obtener más información acerca de cómo proteger las aplicaciones de Configuration Manager, consulte Administración basada en roles de Configuration Manager.
Consulta también
Acerca de las consultas de Configuration ManagerCómo crear una consulta de Configuration ManagerCómo realizar una consulta asincrónica de Configuration Manager mediante código administradoCómo realizar una investigación asincrónica Consulta de Configuration Manager mediante WMI