如何将步骤添加到作系统部署组

Configuration Manager,通过将步骤添加到数组属性,将步骤 (作或组) 添加到SMS_TaskSequenceGroup.Steps作系统部署任务序列组。

向任务序列组添加步骤

  1. 设置与 SMS 提供程序的连接。 有关详细信息,请参阅 SMS 提供程序基础知识

  2. 获取要向其添加步骤 的 SMS_TaskSequenceGroup 对象。 有关详细信息,请参阅 如何创建作系统部署任务序列组

  3. 创建任务序列步骤。 有关创建作步骤的示例,请参阅 如何添加作系统部署任务序列作

  4. 将步骤添加到 SMS_TaskSequenceGroup.Steps 数组属性。

  5. 根据需要对数组属性中的步骤进行重新排序。 有关详细信息,请参阅 如何重新排序作系统部署任务序列

示例

以下示例方法将命令行作添加到任务序列组。

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

Sub AddStepToGroup(taskSequenceStep, group)

    Dim steps

    ' If needed, create a new steps array.
    If IsNull(group.Steps) Then
        steps = Array(taskSequenceStep)
        group.Steps=steps
    Else
        ' Resize the existing steps and add step.
        steps= Array(group.Steps)
        ReDim steps (UBound (group.Steps)+1)
        group.Steps(UBound(steps))=taskSequenceStep
    End if

End Sub
public void AddStepToGroup(
    WqlConnectionManager connection,
    IResultObject taskSequence,
    string groupName)
{
    try
    {
        // Get the group.
        List<IResultObject> steps = taskSequence.GetArrayItems("Steps"); // Array of SMS_TaskSequence_Steps.

        foreach (IResultObject ro in steps)
        {
            if (ro["Name"].StringValue == groupName && ro["__CLASS"].StringValue == "SMS_TaskSequence_Group")
            {
                IResultObject action = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RunCommandLineAction");
                action["CommandLine"].StringValue = @"C:\donowtingroup.bat";
                action["Name"].StringValue = "Action in group " + groupName;
                action["Description"].StringValue = "Action in a group";
                action["Enabled"].BooleanValue = true;
                action["ContinueOnError"].BooleanValue = false;

                // Add the step to the task sequence.
                List<IResultObject> array = ro.GetArrayItems("Steps");

                array.Add(action);

                ro.SetArrayItems("Steps", array);
                taskSequence.SetArrayItems("Steps", steps);
                break;
            }
        }
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed to create Task Sequence: " + e.Message);
        throw;
    }
}

示例方法具有以下参数:

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

taskSequenceStep
-管理: IResultObject
- VBScript: SWbemObject
- 包含组的有效任务序列 (SMS_TaskSequence) 。
groupName

group
-管理: String
- VBScript: String
将命令行作添加到的组的名称。 这是从 SMS_TaskSequenceGroup.Name 属性获取的。

编译代码

此 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 提供程序如何将步骤移动到其他作系统部署任务序列组如何创建作系统部署任务序列组如何从作系统部署组任务序列中删除步骤概述