Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
No Gestor de Configuração, executa uma SMS_Query consulta baseada obtendo a instância de consulta e, em seguida, executando consulta WQL na propriedade do SMS_Query Expression objeto.
Depois de ter a consulta WQL, pode executar a consulta de forma sincronizada ou assíncronea. O exemplo a seguir é sincronizado. Para obter informações sobre a execução da consulta assíncronosamente, consulte Como Executar uma consulta de gestor de configuração assíncronea utilizando código gerido e como executar uma consulta de gestor de configuração assíncronea utilizando o WMI. Nestes exemplos, mude a select * from collection cadeia para o valor da Expression propriedade.
Para fazer uma consulta
Configurar uma ligação com o Fornecedor DE SMS. Para mais informações, consulte os fundamentos do Fornecedor de SMS.
Pegue o
SMS_Queryobjeto para a consulta que quer executar.Executar a consulta identificada pela propriedade do
SMS_QueryExpressionobjeto.
Exemplo
O método de exemplo a seguir executa sincronizadamente a consulta identificada pelo queryId parâmetro.
Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.
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 exemplo tem os seguintes parâmetros:
| Parâmetro | Tipo | Description |
|---|---|---|
connection |
- Gerido: WqlConnectionManager- VBScript: SWbemServices |
Uma ligação válida ao Fornecedor de SMS. |
queryID |
- Gerido: String- VBScript: String |
Um identificador de consultas. Para mais informações consulte a propriedade da SMS_Query QueryID classe. |
A Compilar o Código
O exemplo C# tem os seguintes requisitos de compilação:
Espaços de nomes
Sistema
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assemblagem
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programação Robusta
Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.
Segurança do .NET Framework
Para obter mais informações sobre a segurança das aplicações do Gestor de Configuração, consulte a administração baseada em funções do Gestor de Configuração.
Consulte também
Sobre consultas de gestor de configuração
Como criar uma consulta de gestor de configuração
Como executar uma consulta de gestor de configuração assíncronea através da utilização de código gerido
Como realizar uma consulta de gestor de configuração assíncronea usando o WMI