Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Configuration Manager voert u een SMS_Query query uit door het query-exemplaar op te halen en vervolgens een WQL-query uit te voeren in de SMS_Query objecteigenschapExpression.
Als u de WQL-query hebt, kunt u deze synchroon of asynchroon uitvoeren. Het volgende voorbeeld is synchroon. Zie Een asynchrone Configuration Manager-query uitvoeren met behulp van beheerde code en Een asynchrone Configuration Manager-query uitvoeren met behulp van WMI voor informatie over het asynchroon uitvoeren van de query. Wijzig in deze voorbeelden de select * from collection tekenreeks in de Expression eigenschapswaarde.
Een query uitvoeren
Stel een verbinding in met de sms-provider. Zie Basisprincipes van sms-provider voor meer informatie.
Haal het
SMS_Queryobject op voor de query die u wilt uitvoeren.Voer de query uit die door de
SMS_QueryobjecteigenschapExpressionwordt geïdentificeerd.
Voorbeeld
Met de volgende voorbeeldmethode wordt de query die door de queryId parameter wordt geïdentificeerd, synchroon uitgevoerd.
Zie Codefragmenten van Configuration Manager aanroepen voor meer informatie over het aanroepen van de voorbeeldcode.
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;
}
}
De voorbeeldmethode heeft de volgende parameters:
| Parameter | Type | Beschrijving |
|---|---|---|
connection |
- Beheerd: WqlConnectionManager- VBScript: SWbemServices |
Een geldige verbinding met de sms-provider. |
queryID |
- Beheerd: String- VBScript: String |
Een query-id. Zie de SMS_Query klasse-eigenschap QueryID voor meer informatie. |
De code compileren
Het C#-voorbeeld heeft de volgende compilatievereisten:
Naamruimten
Systeem
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
bijeenkomst
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuust programmeren
Zie Info over fouten in Configuration Manager voor meer informatie over foutafhandeling.
.NET Framework-beveiliging
Zie Rolgebaseerd beheer van Configuration Manager voor meer informatie over het beveiligen van Configuration Manager-toepassingen.
Zie ook
Informatie over Configuration Manager query'sEen Configuration Manager query makenEen asynchrone Configuration Manager query uitvoeren met behulp van beheerde codeEen asynchrone query uitvoeren Configuration Manager-query met behulp van WMI