共用方式為


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

作業系統部署工作順序動作會在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角色型系統管理

另請參閱

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