Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W programie Configuration Manager możesz uruchomić zapytanie na podstawieSMS_Query, pobierając wystąpienie zapytania, a następnie uruchamiając zapytanie WQL we SMS_Query właściwości obiektuExpression.
Po utworzeniu zapytania WQL można je uruchomić synchronicznie lub asynchronicznie. Poniższy przykład jest synchroniczny. Aby uzyskać informacje o asynchronicznym uruchamianiu zapytania, zobacz Jak wykonać asynchroniczne zapytanie programu Configuration Manager przy użyciu kodu zarządzanego i jak wykonać asynchroniczne zapytanie programu Configuration Manager przy użyciu usługi WMI. W tych przykładach zmień select * from collection ciąg na Expression wartość właściwości.
Aby uruchomić kwerendę
Konfigurowanie połączenia z dostawcą usługi SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy wiadomości SMS.
SMS_QueryPobierz obiekt dla zapytania, które chcesz uruchomić.Uruchom zapytanie określone przez
SMS_Querywłaściwość obiektuExpression.
Przykład
Poniższa przykładowa metoda synchronicznie uruchamia zapytanie zidentyfikowane queryId przez parametr.
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu programu 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;
}
}
Przykładowa metoda ma następujące parametry:
| Parametr | Wpisać | Opis |
|---|---|---|
connection |
- Zarządzane: WqlConnectionManager- VBScript: SWbemServices |
Prawidłowe połączenie z dostawcą SMS. |
queryID |
- Zarządzane: String- VBScript: String |
Identyfikator zapytania. Aby uzyskać więcej informacji, zobacz właściwość SMS_Query klasy QueryID . |
Kompilowanie kodu
Przykład języka C# ma następujące wymagania dotyczące kompilacji:
Przestrzenie nazw
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Montaż
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Wydajne programowanie
Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach programu Configuration Manager.
Zabezpieczenia platformy .NET Framework
Aby uzyskać więcej informacji na temat zabezpieczania aplikacji programu Configuration Manager, zobacz Administracja oparta na rolach programu Configuration Manager.
Zobacz też
Informacje o zapytaniach Configuration ManagerJak utworzyć zapytanie Configuration ManagerJak wykonać asynchroniczne zapytanie Configuration Manager przy użyciu kodu zarządzanegoJak wykonać asynchroniczne zapytanie Zapytanie programu Configuration Manager wykonywane przy użyciu usługi WMI