如何執行Configuration Manager查詢
在Configuration Manager中,您可以 SMS_Query
取得查詢實例,然後在 物件 Expression
屬性中 SMS_Query
執行 WQL 查詢,以執行以為基礎的查詢。
擁有 WQL 查詢之後,您可以同步或非同步執行查詢。 下列範例是同步的。 如需以非同步方式執行查詢的資訊,請參閱如何使用 Managed 程式碼執行非同步Configuration Manager查詢和如何使用 WMI 執行非同步Configuration Manager查詢。 在這些範例中 select * from collection
,將字串變更為 Expression
屬性值。
若要執行查詢
設定與 SMS 提供者的連線。 如需詳細資訊,請 參閱 SMS 提供者基本概念。
SMS_Query
取得您想要執行之查詢的 物件。執行物件
Expression
屬性所識別的SMS_Query
查詢。
範例
下列範例方法會同步執行 參數所識別的 queryId
查詢。
如需呼叫範例程式碼的相關資訊,請參閱呼叫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;
}
}
範例方法具有下列參數:
參數 | Type | 描述 |
---|---|---|
connection |
-管理: WqlConnectionManager - VBScript: SWbemServices |
SMS 提供者的有效連線。 |
queryID |
-管理: String - VBScript: String |
查詢識別碼。 如需詳細資訊,請參 SMS_Query 閱 類別 QueryID 屬性。 |
正在編譯程式碼
C# 範例具有下列編譯需求:
命名空間
系統
System.Collections.Generic
System.Text
Microsoft。ConfigurationManagement.ManagementProvider
Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine
組件
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
健全的程式設計
如需錯誤處理的詳細資訊,請參閱關於Configuration Manager錯誤。
.NET Framework 安全性
如需保護Configuration Manager應用程式的詳細資訊,請參閱Configuration Manager角色型系統管理。
另請參閱
關於Configuration Manager查詢
如何建立Configuration Manager查詢
如何使用 Managed 程式碼執行非同步Configuration Manager查詢
如何使用 WMI 執行非同步Configuration Manager查詢