如何创建操作系统部署任务序列

可以通过创建 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;  
    }  
}  

示例方法具有以下参数:

参数 类型 说明
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

System.Collections.Generic

System.Text

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

可靠编程

有关错误处理的详细信息,请参阅关于Configuration Manager错误

.NET Framework 安全性

有关保护Configuration Manager应用程序的详细信息,请参阅Configuration Manager基于角色的管理

另请参阅

对象概述如何使用托管代码连接到 Configuration Manager 中的 SMS 提供程序
如何使用 WMI 连接到 Configuration Manager 中的短信提供程序
任务序列概述如何创建操作系统部署任务序列包