Добавление условия на шаг последовательности задач развертывания операционной системы
Условия можно добавить на шаг развертывания операционной системы (действие и группа) в Configuration Manager, создав экземпляр класса SMS_TaskSequence_Condition, а затем связав его с шагом. Если все операнды условий выполнены, выполняется обработка шага; в противном случае это не так. Условие может иметь один или несколько операндов, которые являются экземплярами SMS_TaskSequence_Condition производных классов. Операторы для операндов указываются с экземплярами SMS_TaskSequence_ConditionOperator.
Добавление условия в шаг
Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.
Получение объекта шага последовательности задач. Это может быть объект SMS_TaskSequence_Group для группы или объект производного класса SMS_TaskSequenceAction для действия. Дополнительные сведения см. в разделе Добавление действия последовательности задач развертывания операционной системы.
Создайте новое условие, создав экземпляр
SMS_TaskSequence_Condition
.Создайте выражение для условия, создав экземпляр производного класса SMS_TaskSequence_ConditionExpression . Например, SMS_TaskSequence_RegistryConditionExpression.
Заполните свойства выражения.
Добавьте выражение в свойство operands условия.
Добавьте условие в свойство Condition класса шага последовательности задач.
Пример
В следующем примере метод добавляет условие в предоставленный шаг, который определяет, существует ли раздел реестра HKEY_LOCAL_MACHINE\MICROSOFT. Выражение SMS_TaskSequenc_RegistryCondition используется для указания условия.
Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.
Sub AddRegistryCondition (connection, taskSequenceStep)
Dim condition
Dim registryExpression
Dim operands
' Get or create the condition.
if IsNull ( taskSequenceStep.Condition) Then
Set condition = connection.Get("SMS_TaskSequence_Condition").SpawnInstance_
Else
Set condition = taskSequenceStep.Condition
End If
' Populate the condition.
Set registryExpression=connection.Get("SMS_TaskSequence_RegistryConditionExpression").SpawnInstance_
registryExpression.KeyPath="HKEY_LOCAL_MACHINE\MICROSOFT"
registryExpression.Operator="exists"
registryExpression.Type="REG_SZ"
registryExpression.Data=Null
' Add the condition.
operands=Array(registryExpression)
condition.Operands=operands
taskSequenceStep.Condition=condition
End Sub
public void AddRegistryCondition(
WqlConnectionManager connection,
IResultObject taskSequenceStep)
{
try
{
IResultObject condition;
if (taskSequenceStep["Condition"].ObjectValue == null)
{
// Create a new condition.
condition = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_Condition");
}
else
{ // Get the existing condition.
condition = taskSequenceStep.GetSingleItem("Condition");
}
// Create and populate the expression.
IResultObject registryExpression = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RegistryConditionExpression");
registryExpression["KeyPath"].StringValue = @"HKEY_LOCAL_MACHINE\MICROSOFT";
registryExpression["Operator"].StringValue = "exists";
registryExpression["Type"].StringValue = "REG_SZ";
registryExpression["Data"].StringValue = null;
// Get the operands and add the expression.
List<IResultObject> operands = condition.GetArrayItems("Operands");
operands.Add(registryExpression);
// Add the expresssion to the list of operands.
condition.SetArrayItems("Operands", operands);
// Add the condition to the sequence.
taskSequenceStep.SetSingleItem("Condition", condition);
}
catch (SmsException e)
{
Console.WriteLine("Failed to create Task Sequence: " + e.Message);
throw;
}
}
Метод примера имеет следующие параметры:
Параметр | Тип | Описание |
---|---|---|
connection |
-Управляемых: WqlConnectionManager — VBScript: SWbemServices |
Допустимое подключение к поставщику SMS. |
taskSequenceStep |
-Управляемых: IResultObject — VBScript: SWbemObject |
Допустимый шаг последовательности задач (SMS_TaskSequenceStep). |
Компиляция программы
Пример 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 администрирование на основе ролей.
См. также
Общие сведения об объектах. Добавление действия последовательности задач развертывания операционной системы
Подключение к поставщику SMS в Configuration Manager с помощью управляемого кода
Подключение к поставщику SMS в Configuration Manager с помощью WMI
Обзор последовательности задач