Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans le Configuration Manager, vous exécutez une SMS_Query requête basée en obtenant l’instance de requête, puis en exécutant une requête WQL dans la SMS_Query propriété objectExpression.
Une fois que vous avez la requête WQL, vous pouvez exécuter la requête de manière synchrone ou asynchrone. L’exemple suivant est synchrone. Pour plus d’informations sur l’exécution asynchrone de la requête, consultez Comment exécuter une requête asynchrone du Configuration Manager à l’aide du code managé et Comment exécuter une requête asynchrone du Configuration Manager à l’aide de WMI. Dans ces exemples, remplacez la select * from collection chaîne par la valeur de la Expression propriété.
Pour exécuter une requête
Établissez une connexion au fournisseur SMS. Pour plus d’informations, consultez Principes de base du fournisseur SMS.
Obtenir l’objet
SMS_Queryde la requête que vous souhaitez exécuter.Exécutez la requête identifiée par la propriété d’objet
SMS_QueryExpression.
Exemple
L’exemple de méthode suivant exécute de façon synchrone la requête identifiée par le queryId paramètre.
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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;
}
}
L’exemple de méthode contient les paramètres suivants :
| Paramètre | Type | Description |
|---|---|---|
connection |
- Géré : WqlConnectionManager- VBScript : SWbemServices |
Connexion valide au fournisseur SMS. |
queryID |
- Géré : String- VBScript : String |
Identificateur de requête. Pour plus d’informations, voir la propriété de classe SMS_QueryQueryID . |
Compilation du code
L’exemple C# a les exigences de compilation suivantes :
Espaces de noms
Système
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Programmation robuste
Pour plus d’informations sur la gestion des erreurs, voir À propos des erreurs du Configuration Manager.
Sécurité de .NET Framework
Pour plus d’informations sur la sécurisation des applications Configuration Manager, voir Administration basée sur les rôles de Configuration Manager.
Voir aussi
À propos des requêtes Configuration ManagerComment créer une requête Configuration ManagerProcédure pour exécuter une requête Configuration Manager asynchrone à l’aide de code managéProcédure pour effectuer une requête asynchrone Requête du Configuration Manager à l’aide de WMI