Configuration Managerでは、クエリ インスタンスを取得し、SMS_Query
オブジェクト Expression
プロパティで WQL クエリを実行することで、SMS_Query
ベースのクエリを実行します。
WQL クエリを作成したら、クエリを同期的または非同期的に実行できます。 次の例は同期です。 クエリを非同期的に実行する方法については、「マネージ コードを使用して非同期Configuration Manager クエリを実行する方法」および「WMI を使用して非同期Configuration Manager クエリを実行する方法」を参照してください。 これらの例では、 select * from collection
文字列を Expression
プロパティ値に変更します。
クエリを実行するには
SMS プロバイダーへの接続を設定します。 詳細については、「 SMS プロバイダーの基礎」を参照してください。
実行するクエリの
SMS_Query
オブジェクトを取得します。SMS_Query
オブジェクトExpression
プロパティによって識別されるクエリを実行します。
例
次のメソッド例では、 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;
}
}
このメソッドの例には、次のパラメーターがあります。
パラメーター | 型 | 説明 |
---|---|---|
connection |
-管理: WqlConnectionManager - VBScript: SWbemServices |
SMS プロバイダーへの有効な接続。 |
queryID |
-管理: String - VBScript: String |
クエリ識別子。 詳細については、 SMS_Query クラスの QueryID プロパティに関するページを参照してください。 |
コードのコンパイル
C# の例には、次のコンパイル要件があります。
名前空間
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
堅牢なプログラミング
エラー処理の詳細については、「Configuration Manager エラーについて」を参照してください。
.NET Framework のセキュリティ
Configuration Manager アプリケーションのセキュリティ保護の詳細については、「ロールベースの管理Configuration Manager」を参照してください。
関連項目
Configuration Manager クエリについて Configuration Manager クエリを作成する方法 マネージ コードを使用して非同期Configuration Manager クエリを実行する方法 非同期を実行する方法WMI を使用したクエリのConfiguration Manager