Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No Configuration Manager, você executa uma SMS_Query consulta baseada obtendo a instância da consulta e, em seguida, executando a consulta WQL na propriedade object SMS_QueryExpression.
Depois de ter a consulta WQL, você poderá executá-la de forma síncrona ou assíncrona. O exemplo a seguir é síncrono. Para obter informações sobre como executar a consulta de forma assíncrona, consulte Como executar uma consulta assíncrona do Configuration Manager usando código gerenciado e Como executar uma consulta assíncrona do Configuration Manager usando WMI. Nestes exemplos, altere a select * from collection cadeia de caracteres para o valor da Expression propriedade.
Para executar uma consulta
Configure uma conexão com o provedor de SMS. Para obter mais informações, consulte Conceitos básicos do Provedor SMS.
Obtenha o
SMS_Queryobjeto para a consulta que você deseja executar.Execute a consulta identificada pela propriedade object
SMS_QueryExpression.
Exemplo
O método de exemplo a seguir executa de forma síncrona a consulta identificada pelo queryId parâmetro.
Para obter informações sobre como chamar o código de exemplo, consulte Chamando trechos de código do 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;
}
}
O método de exemplo tem os seguintes parâmetros:
| Parâmetro | Tipo | Descrição |
|---|---|---|
connection |
- Gerenciado: WqlConnectionManager- VBScript: SWbemServices |
Uma conexão válida com o provedor de SMS. |
queryID |
- Gerenciado: String- VBScript: String |
Um identificador de consulta. Para obter mais informações, consulte a SMS_Query propriedade class QueryID . |
Compilando o código
O exemplo do C# tem os seguintes requisitos de compilação:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Programação robusta
Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Configuration Manager.
Segurança do .NET Framework
Para obter mais informações sobre como proteger aplicativos do Configuration Manager, consulte Administração baseada em funções do Configuration Manager.
Confira também
Sobre consultas do Configuration ManagerComo criar uma consulta do Configuration ManagerComo executar uma consulta assíncrona do Configuration Manager usando código gerenciadoComo executar uma consulta assíncrona Consulta do Configuration Manager usando WMI