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

可以通过创建 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 中的短信提供程序
如何创建任务序列
任务序列概述