如何从作系统部署组中删除步骤

在Configuration Manager中,通过从组的任务序列步骤列表中删除步骤 (,从作系统部署任务序列组中删除作或组) 的步骤。

从组中删除步骤

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

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

  3. 从 SMS_TaskSequence_Group.Steps 数组属性中删除作。

示例

以下示例方法从任务序列组中删除作。

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

Sub RemoveActionFromGroup(taskSequenceGroup, actionName)

    Dim i

    If taskSequenceGroup.SystemProperties_("__CLASS")<>"SMS_TaskSequence_Group" Then
        wscript.echo "Not a group"
        return
    End If

        Dim newArray
        Dim actionStep

        newArray = Array(taskSequenceGroup.Steps)
        ReDim newArray(UBound(taskSequenceGroup.Steps))

        i=0
        for each  actionStep in taskSequenceGroup.Steps
            If actionStep.Name = actionName and _
              actionStep.SystemProperties_("__SUPERCLASS") = "SMS_TaskSequence_Action" Then
                 ReDim preserve newArray(UBound(newArray)-1) ' shrink the Array
            else
               wscript.echo actionStep.Name
               Set newArray(i)=actionStep ' copy it
               i=i+1
            End If

         Next

         taskSequenceGroup.Steps=newArray

 End Sub
public void RemoveActionFromGroup(
    IResultObject taskSequenceGroup,
    string actionName)
{
    try
    {
        if (taskSequenceGroup["__CLASS"].StringValue != "SMS_TaskSequence_Group")
        {
            throw new System.InvalidOperationException("Not a group");
        }

        List<IResultObject> groupSteps = taskSequenceGroup.GetArrayItems("Steps");
        IResultObject actionFound = null;
        foreach (IResultObject actionStep in groupSteps)
        {
            if (actionStep["Name"].StringValue == actionName && actionStep["__SUPERCLASS"].StringValue == "SMS_TaskSequence_Action")
            {
                actionFound = actionStep;
                break;
            }
        }

        groupSteps.Remove(actionFound);
        taskSequenceGroup.SetArrayItems("Steps", groupSteps);
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed to remove action: " + e.Message);
        throw;
    }
}

示例方法具有以下参数:

参数 类型 说明
taskSequenceGroup - 托管:IResultObject
- VBScript: SWbemObject
包含要删除的作的任务序列组。
actionName -管理: String
- VBScript: String
要删除的作的名称。 这可以从 SMS_TaskSequenceAction.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 提供程序如何将步骤移动到其他作系统部署任务序列组如何创建作系统部署任务序列组任务序列概述