Share via


如何建立作業系統部署工作順序

您可以建立 SMS_TaskSequence 類別的實例,以建立Configuration Manager作業系統部署工作順序。

工作順序包含在用戶端電腦上循序執行的一或多個步驟。 如需詳細資訊,請參閱 作業系統部署工作順序物件模型

工作順序接著會封裝在 SMS_TaskSequencePackage 中,並公告給用戶端電腦。

建立工作順序

  1. 設定與 SMS 提供者的連線。 如需詳細資訊,請 參閱 SMS 提供者基本概念

  2. 建立工作順序 SMS_TaskSequence 物件。

  3. 新增動作,並視需要將群組新增至動作。 如需詳細資訊,請參閱 如何新增作業系統部署工作順序動作

  4. 將工作順序與工作順序套件產生關聯。 如需詳細資訊,請參閱 如何建立作業系統部署工作順序套件

  5. 將工作順序公告給用戶端電腦。 如需詳細資訊,請 參閱如何建立廣告

範例

下列範例方法會建立安裝軟體程式的工作順序。 此範例也會藉由呼叫 如何建立作業系統部署工作順序套件中定義的範例,來建立工作順序套件。

如需呼叫範例程式碼的相關資訊,請參閱呼叫Configuration Manager程式碼片段

Sub CreateInstallSoftwareTaskSequence(connection,name, description, packageID, programName)  

    ' Create the task sequence.  
    set taskSequence = connection.Get("SMS_TaskSequence").SpawnInstance_  

    ' Create the action.  
    set action = connection.Get("SMS_TaskSequence_InstallSoftwareAction").SpawnInstance_  

    action.ProgramName=programName  
    action.PackageID=packageID  
    action.Name=name  
    action.Enabled=true  
    action.ContinueOnError=false  

    ' Create an array to hold the action.  
    actionSteps= array(action)  
    ' Add the array to the task sequence.  
    taskSequence.Steps=actionSteps  

    wscript.echo taskSequence.Steps(0).Name  
    call CreateTaskSequencePackage (connection, taskSequence)  

 End Sub  
public void CreateInstallSoftwareTaskSequence(  
    WqlConnectionManager connection,   
    string name,   
    string packageId,   
    string programName)  
{  
    try  
    {  
        // Create the task sequence.  
        IResultObject taskSequence = connection.CreateInstance("SMS_TaskSequence");  

        IResultObject ro = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_InstallSoftwareAction");  
        ro["ProgramName"].StringValue = programName;  
        ro["packageId"].StringValue = packageId;  
        ro["Name"].StringValue = name;  
        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);  

        // Create the task sequence package.  
        this.CreateTaskSequencePackage(connection, taskSequence);  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to create Task Sequence: " + e.Message);  
        throw;  
    }  
}  

範例方法具有下列參數:

參數 Type 描述
Connection -管理: WqlConnectionManager
- VBScript: SWbemServices
SMS 提供者的有效連線。
name -管理: String
- VBScript: String
工作順序步驟名稱。
description - VBScript: String 工作順序步驟描述。
packageID -管理: String
- VBScript: String
包含要安裝之軟體的套件識別碼。 從 SMS_Package.PackageID 取得。
programName -管理: String
- VBScript: String
要安裝的程式名稱。 從 SMS_Program.ProgramName 取得。

正在編譯程式碼

此 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 提供者
工作順序概觀如何建立作業系統部署工作順序套件