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

可以通过创建 SMS_TaskSequencePackage 类的实例,在 Configuration Manager 中创建作系统部署任务序列。 此类派生自 SMS_Package 类,并保存任务序列。 它播发给客户端,然后可以运行任务序列。 任务序列通过使用SMS_TaskSequencePackage类 SetSequence 方法与任务序列包相关联。

可以通过使用SMS_TaskSequence类 Category 属性为任务序列包分配类别,将任务序列包组织成类别

有关创建任务序列的详细信息,请参阅 如何创建任务序列。 有关任务序列包的详细信息,请参阅 任务排序对象模型

按与播发Configuration Manager包 相同的方式播发任务序列包SMS_Package。 有关详细信息,请参阅 如何创建播发

创建任务序列包

  1. 设置与 SMS 提供程序的连接。 有关详细信息,请参阅关于 Configuration Manager 中的 SMS 提供程序

  2. 创建 的 SMS_TaskSequencePackage实例。

  3. 填充任务序列包属性。

  4. SMS_TaskSequencePackage调用 类SetSequence方法可将任务序列 () SMS_TaskSequence 与任务序列包相关联。

示例

以下示例方法 () SMS_TaskSequencePackage 创建任务序列包,并将任务序列 (SMS_TaskSequence) 关联。

有关调用示例代码的信息,请参阅调用Configuration Manager代码片段

Sub CreateTaskSequencePackage (connection, taskSequence)

    Dim taskSequencePackage
    Dim packageClass
    Dim objInParams
    Dim objOutParams

    ' Create the new package object.
    Set taskSequencePackage = connection.Get("SMS_TaskSequencePackage").SpawnInstance_

    ' Populate the new package properties.
    taskSequencePackage.Name = "New task sequence package"
    taskSequencePackage.Description = "A new task sequence package description"

    ' Get the parameters object.
    Set packageClass = connection.Get("SMS_TaskSequencePackage")

    Set objInParams = packageClass.Methods_("SetSequence"). _
        inParameters.SpawnInstance_()

    ' Add the input parameters.
    objInParams.TaskSequence =  taskSequence
    objInParams.TaskSequencePackage = taskSequencePackage

    ' Add the sequence.
     Set objOutParams = connection.ExecMethod("SMS_TaskSequencePackage", "SetSequence", objInParams)

End Sub

public IResultObject CreateTaskSequencePackage(
    WqlConnectionManager connection,
    IResultObject taskSequence)
{
    try
    {
        Dictionary<string, object> inParams = new Dictionary<string, object>();

        // Create the new task sequence package.
        IResultObject taskSequencePackage = connection.CreateInstance("SMS_TaskSequencePackage");

        taskSequencePackage["Name"].StringValue = "New task sequence package";
        taskSequencePackage["Description"].StringValue = "A brand new task sequence package";
        taskSequencePackage["Category"].StringValue = "A custom category";

        // Note. Add other package properties as required.

        // Set up parameters that associate the task sequence with the package.
        inParams.Add("TaskSequence", taskSequence);
        inParams.Add("TaskSequencePackage", taskSequencePackage);

        // Associate the task sequence with the package. Note that a call to Put is not required.
        IResultObject result = connection.ExecuteMethod("SMS_TaskSequencePackage", "SetSequence", inParams);

        // The path to the new package.
        Console.WriteLine(result["SavedTaskSequencePackagePath"].StringValue);

        return taskSequencePackage;
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed to create Task Sequence: " + e.Message);
        throw;
    }
}

此示例方法具有以下参数:

参数 类型 说明
connection -管理: WqlConnectionManager
- VBScript: SWbemServices
与 SMS 提供程序的有效连接。
taskSequence -管理: IResultObject
- VBScript: SWbemObject
有效的任务序列 SMS_TaskSequence

编译代码

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中的 SMS 提供程序如何创建任务序列任务序列概述