如何运行Configuration Manager查询
在 Configuration Manager中,通过获取查询实例,然后在 对象Expression
属性中运行 WQL 查询,来运行SMS_Query
基于的SMS_Query
查询。
拥有 WQL 查询后,可以同步或异步运行查询。 以下示例是同步的。 有关异步运行查询的信息,请参阅如何使用托管代码执行异步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;
}
}
示例方法具有以下参数:
参数 | 类型 | 说明 |
---|---|---|
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查询