Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Configuration Manager führen Sie eine SMS_Query basierte Abfrage aus, indem Sie die Abfrage instance abrufen und dann die WQL-Abfrage in der SMS_Query Objekteigenschaft Expression ausführen.
Nachdem Sie über die WQL-Abfrage verfügen, können Sie die Abfrage entweder synchron oder asynchron ausführen. Das folgende Beispiel ist synchron. Informationen zum asynchronen Ausführen der Abfrage finden Sie unter Ausführen einer asynchronen Configuration Manager Abfrage mithilfe von verwaltetem Code und Ausführen einer asynchronen Configuration Manager Abfrage mithilfe von WMI. Ändern Sie in diesen Beispielen die select * from collection Zeichenfolge in den Expression Eigenschaftswert.
So führen Sie eine Abfrage aus
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Rufen Sie das
SMS_Query-Objekt für die Abfrage ab, die Sie ausführen möchten.Führen Sie die abfrage aus, die durch die
SMS_QueryObjekteigenschaftExpressionidentifiziert wird.
Beispiel
Die folgende Beispielmethode führt die durch den queryId -Parameter identifizierte Abfrage synchron aus.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
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;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
connection |
-Gehandhabt: WqlConnectionManager– VBScript: SWbemServices |
Eine gültige Verbindung mit dem SMS-Anbieter. |
queryID |
-Gehandhabt: String– VBScript: String |
Ein Abfragebezeichner. Weitere Informationen finden Sie unter der SMS_Query Klasseneigenschaft QueryID . |
Kompilieren des Codes
Für das C#-Beispiel gelten die folgenden Kompilierungsanforderungen:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.
Siehe auch
Informationen zu Configuration Manager AbfragenHow to Create a Configuration Manager QueryHow to Perform an Asynchronous Configuration Manager Query by Using Managed CodeHow to Perform an Asynchronous Configuration Manager Abfrage mithilfe von WMI