Поделиться через


Добавление действия последовательности задач развертывания операционной системы

Действие последовательности задач развертывания операционной системы добавляется в последовательность задач в Configuration Manager путем создания экземпляра производного класса SMS_TaskSequence_Action, а затем добавления его в шаги последовательности задач.

Примечание.

Configuration Manager имеет ряд встроенных действий, которые можно использовать. Например, класс действий командной строки — SMS_TaskSequence_RunCommandLineAction. Эти классы являются производными от класса SMS_TaskSequence_Action .

SMS_TaskSequenceAction является производным от класса SMS_TaskSequence_Step , который является базовым классом для действий и групп. Последовательность задач хранит свои шаги в массиве SMS_TaskSequence_Step, что позволяет хранить действия и группы вместе.

Добавление действия последовательности задач

  1. Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.

  2. Создайте объект последовательности задач (SMS_TaskSequence). Дополнительные сведения см. в разделе Создание последовательности задач развертывания операционной системы.

  3. Создайте экземпляр производного класса SMS_TaskSequenceAction , например SMS_TaskSequence_RunCommandLineAction, для нужного действия.

  4. Заполните действие соответствующим образом.

  5. Добавьте действие в шаги последовательностей задач. Хранится свойство класса SMS_TaskSequence) Steps.

Пример

В следующем примере метод создает действие командной строки и добавляет его в указанную последовательность задач.

Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.

Sub AddTaskSequenceActionCommandLine(connection, taskSequence, name, description)     

    Dim steps  
    Dim action    

    Set action = connection.Get("SMS_TaskSequence_RunCommandLineAction").SpawnInstance_  

    action.CommandLine = "cmd /c Echo Hello"  
    action.Name=name  
    action.Description=description  
    action.Enabled=True  
    action.ContinueOnError=False  

      If IsNull(taskSequence.Steps) Then  
        steps = Array(action)  
        taskSequence.Steps=steps  
    Else  
        steps= Array(taskSequence.Steps)  
        ReDim steps (UBound (taskSequence.Steps)+1)   
        taskSequence.Steps(UBound(steps))=action  
    End if    

End Sub  

public IResultObject AddTaskSequenceActionCommandLine(  
    WqlConnectionManager connection,   
    IResultObject taskSequence,  
    string name,   
    string description)  
{  
    try  
    {  
        // Create the new step.  
        IResultObject ro;  

        ro = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RunCommandLineAction");  
        ro["CommandLine"].StringValue = @"cmd /c Echo Hello";  

        ro["Name"].StringValue = name;  
        ro["Description"].StringValue = description;  
        ro["Enabled"].BooleanValue = true;  
        ro["ContinueOnError"].BooleanValue = false;  

        // Add the step to the task sequence.  
        List<IResultObject> array = taskSequence.GetArrayItems("Steps");  

        array.Add(ro);  

        taskSequence.SetArrayItems("Steps", array);  

        return ro;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to add action: " + e.Message);  
        throw;  
    }  
}  

Метод примера имеет следующие параметры:

Параметр Тип Описание
connection -Управляемых: WqlConnectionManager
— VBScript: SWbemServices
Допустимое подключение к поставщику SMS.
taskSequence -Управляемых: IResultObject
— VBScript: SWbemObject
Допустимая последовательность задач.
Name -Управляемых: String
-Vbscript: String
Имя нового действия.
Description -Управляемых: String
-Vbscript: String
Описание действия.

Компиляция программы

Для этого примера на 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
Создание группы последовательности задач развертывания операционной системы
Удаление действия последовательности задач развертывания операционной системы
Обзор последовательности задач