Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In Configuration Manager, puoi eseguire una SMS_Query query basata ottenendo l'istanza della query e quindi eseguendo la query WQL nella proprietà object SMS_QueryExpression.
Dopo aver eseguito la query WQL, è possibile eseguirla in modo sincrono o asincrono. L'esempio seguente è sincrono. Per informazioni sull'esecuzione asincrona della query, vedere Come eseguire una query asincrona di Configuration Manager usando codice gestito e Come eseguire una query asincrona di Configuration Manager usando WMI. In questi esempi, modificare la select * from collection stringa con il valore della Expression proprietà.
Per eseguire una query
Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.
Ottenere l'oggetto
SMS_Queryper la query da eseguire.Eseguire la query identificata dalla proprietà object
SMS_QueryExpression.
Esempio
Il metodo di esempio seguente esegue in modo sincrono la query identificata dal queryId parametro.
Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice di 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;
}
}
Il metodo di esempio include i parametri seguenti:
| Parametro | Tipo | Descrizione |
|---|---|---|
connection |
- Gestito: WqlConnectionManager- VBScript: SWbemServices |
Una connessione valida al provider SMS. |
queryID |
- Gestito: String- VBScript: String |
Identificatore di query. Per ulteriori informazioni, vedere la proprietà class SMS_QueryQueryID . |
Compilazione del codice
L'esempio di C# presenta i requisiti di compilazione seguenti:
Spazi dei nomi
Sistema
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagementManagementProvider
Microsoft.ConfigurationManagementManagementProvider.WqlQueryEngine
Assembly
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Programmazione efficiente
Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.
Sicurezza di .NET Framework
Per altre informazioni sulla protezione delle applicazioni di Configuration Manager, vedere Amministrazione basata sui ruoli di Configuration Manager.
Vedere anche
Informazioni sulle query di Configuration ManagerCome creare una query di Configuration ManagerCome eseguire una query asincrona di Configuration Manager tramite codice gestitoCome eseguire un'istanza asincrona Query di Configuration Manager tramite WMI