共用方式為


如何新增作系統部署工作順序動作

作系統部署工作順序動作會新增至工作順序,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;
    }
}

範例方法具有下列參數:

參數 Type 描述
connection -管理: WqlConnectionManager
- VBScript: SWbemServices
SMS 提供者的有效連線。
taskSequence -管理: IResultObject
- VBScript: SWbemObject
有效的工作順序。
Name -管理: String
- VBScript: String
新動作的名稱。
Description -管理: String
- VBScript: String
動作的描述。

正在編譯程式碼

此 C# 範例需要:

命名空間

系統

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

組件

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

健全的程式設計

如需錯誤處理的詳細資訊,請參閱關於 Configuration Manager 錯誤

.NET Framework 安全性

如需保護 Configuration Manager 應用程式的詳細資訊,請參閱 Configuration Manager 角色型系統管理

另請參閱

物件概觀 如何使用 WMI 如何建立作系統部署工作順序群組,在 Configuration Manager 中使用 Managed 程式代碼將條件新增至作系統部署工作順序步驟如何連線到 SMS 提供者如何在 Configuration Manager 中聯機到 SMS 提供者如何刪除作系統部署工作順序動作工作順序概觀