Создание запроса Configuration Manager
В Configuration Manager создается SMS_Query
запрос на основе экземпляра SMS_Query
. Объект SMS_Query
класса Expression
определяет запрос WQL. Если вы хотите ограничить результаты запроса определенной коллекцией, укажите идентификатор коллекции в свойстве LimitToCollectionID
.
Примечание.
При создании запроса он отображается в консоли Configuration Manager в разделе Запросы.
Создание запроса
Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.
Создайте экземпляр SMS_Query.
SMS_Query
Заполните свойства.Зафиксируйте
SMS_Query
.При необходимости извлеките объект запроса и получите идентификатор запроса.
Пример
В следующем примере метода создается SMS_Query
запрос класса, который запрашивает все системы. Метод возвращает идентификатор запроса, который можно использовать в качестве входных данных в примере в разделе Выполнение запроса Configuration Manager.
Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.
Function CreateQuery(connection)
On Error Resume Next
Dim query
Dim path
' Create a query object.
Set query = connection.Get("SMS_Query").SpawnInstance_()
If Err.Number<>0 Then
Wscript.Echo "Couldn't create query object"
CreateQuery = Null
Exit Function
End If
' Populate the object.
query.Comments = "A query for all systems"
query.Expression = "select Name, " + _
"SMSAssignedSites, " + _
"IPAddresses, " + _
"IPSubnets, " + _
"OperatingSystemNameandVersion, " + _
"ResourceDomainORWorkgroup, " + _
"LastLogonUserDomain, " + _
"LastLogonUserName, " + _
"SMSUniqueIdentifier, " + _
"ResourceId, " + _
"ResourceType, " + _
"NetbiosName " + _
"from sms_r_system"
query.LimitToCollectionID = nothing
query.Name = "Query All Systems"
query.TargetClassName = "SMS_R_System"
' Commit the object
path = query.Put_
If Err.Number<>0 Then
Wscript.Echo "Couldn't commit the query"
CreateQuery = Null
Exit Function
End If
WScript.Echo "Query created"
' Get the object back to get the query identifier.
Set query = connection.Get(path)
CreateQuery = query.QueryID
End Function
public string CreateQuery(WqlConnectionManager connection)
{
try
{
// Create an SMS_Query object.
IResultObject query = connection.CreateInstance("SMS_Query");
// Populate the object.
query["Comments"].StringValue = "A query for all systems";
query["Expression"].StringValue =
"select Name, " +
"SMSAssignedSites, " +
"IPAddresses, " +
"IPSubnets, " +
"OperatingSystemNameandVersion, " +
"ResourceDomainORWorkgroup, " +
"LastLogonUserDomain, " +
"LastLogonUserName, " +
"SMSUniqueIdentifier, " +
"ResourceId, " +
"ResourceType, " +
"NetbiosName " +
"from sms_r_system";
query["LimitToCollectionID"].StringValue = null;
query["Name"].StringValue = "Query All Systems";
query["TargetClassName"].StringValue = "SMS_R_System";
// Commit the query.
query.Put();
// Get the query - allows access to the queryID.
query.Get();
// Return the query identifier.
return query["QueryID"].StringValue;
}
catch (SmsException e)
{
Console.WriteLine("Failed to run the query: " + e.Message);
throw;
}
}
Метод примера имеет следующие параметры:
Параметр | Тип | Описание |
---|---|---|
connection |
-Управляемых: WqlConnectionManager — VBScript: SWbemServices |
— допустимое подключение к поставщику SMS. |
Компиляция программы
Пример C# имеет следующие требования к компиляции:
Пространства имен
System;
System.Collections.Generic;
System.Text
Майкрософт. ConfigurationManagement.ManagementProvider
Майкрософт. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Надежное программирование
Дополнительные сведения об обработке ошибок см. в разделе Сведения об ошибках Configuration Manager.
Безопасность .NET Framework
Дополнительные сведения о защите приложений Configuration Manager см. в статье Configuration Manager администрирование на основе ролей.
См. также
Сведения о запросах Configuration Manager
Выполнение запроса Configuration Manager