다음을 통해 공유


운영 체제 배포 작업 순서 작업을 삭제하는 방법

작업 순서 단계에서 작업을 제거하여 Configuration Manager 운영 체제 배포 작업 순서 작업을 삭제합니다.

작업 순서 작업을 삭제하려면

  1. SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.

  2. 작업 순서(SMS_TaskSequence) 개체를 가져옵니다. 자세한 내용은 운영 체제 배포 작업 순서를 만드는 방법을 참조하세요.

  3. 배열 속성에서 SMS_TaskSequence.Steps 작업을 제거합니다.

예시

다음 예제 메서드는 작업 순서에서 작업을 삭제합니다. 작업은 WMI(Windows Management Instrumentation) 속성 __SUPERCLASS 확인하여 SMS_TaskSequenceAction 파생되는지 확인하여 작업으로 식별됩니다.

샘플 코드 호출에 대한 자세한 내용은 코드 조각 Configuration Manager 호출을 참조하세요.

Sub RemoveAction (connection, taskSequence, actionName)  

    Dim i  
    Dim newArray  
    Dim actionStep  

    If taskSequence.SystemProperties_("__CLASS")<>"SMS_TaskSequence" Then  
        wscript.echo "Not a task sequence"  
        Exit Sub  
    End If  

    if IsNull(taskSequence.Steps) Then  
        Wscript.Echo "No steps"  
        Exit Sub  
    End If  

    ' Create an array to hold copied steps.  
    newArray = Array(taskSequence.Steps)  
    ReDim newArray(UBound(taskSequence.Steps))  

    ' Copy the steps into the array and remove the matching action.  
    i=0  
    for each  actionStep in taskSequence.Steps  
        If actionStep.Name = actionName and _  
          actionStep.SystemProperties_("__SUPERCLASS") = "SMS_TaskSequence_Action" Then  
             ReDim preserve newArray(UBound(newArray)-1) ' shrink the Array  
        else  
           Set newArray(i)=actionStep ' copy it  
           i=i+1  
        End If     
     Next  

     ' Assign new array back to the task sequence.  
     taskSequence.Steps=newArray           

End Sub      
public void RemoveAction(  
    IResultObject taskSequence,   
    string actionName)  
{  
    try  
    {  
        // Get a list of steps.  
        List<IResultObject> actionSteps = taskSequence.GetArrayItems("Steps");  

        // Find the action to be deleted.  
        foreach (IResultObject actionStep in actionSteps)  
        {  
            if (actionStep["Name"].StringValue == actionName && actionStep["__SUPERCLASS"].StringValue == "SMS_TaskSequence_Action")  
            {  
                // Delete the action.  
                actionSteps.Remove(actionStep);  
                break;  
            }  
        }  

        // Update the task sequence.  
        taskSequence.SetArrayItems("Steps", actionSteps);  
    }  
    catch (Exception e)  
    {  
        Console.WriteLine("Failed to remove action: " + e.Message);  
        throw;  
    }  
}  

예제 메서드에는 다음 매개 변수가 있습니다.

매개 변수 형식 설명
Connection -관리:WqlConnectionManager
- VBScript: SWbemServices
SMS 공급자에 대한 유효한 연결입니다.
taskSequence -관리: IResultObject
- VBScript: SWbemObject
삭제할 작업이 포함된 작업 순서입니다.
actionName -관리: String
-Vbscript: String
삭제할 작업의 이름입니다. 이 속성에서 SMS_TaskSequenceAction.Name 가져올 수 있습니다.

코드 컴파일

이 C# 예제에는 다음이 필요합니다.

네임 스페이스

시스템

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

어셈블리

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

강력한 프로그래밍

오류 처리에 대한 자세한 내용은 Configuration Manager 오류 정보를 참조하세요.

.NET Framework 보안

Configuration Manager 애플리케이션 보안에 대한 자세한 내용은 역할 기반 관리 Configuration Manager 참조하세요.

참고 항목

개체 개요운영 체제 배포 작업 순서 작업을 추가하는 방법
관리 코드를 사용하여 Configuration Manager SMS 공급자에 연결하는 방법
WMI를 사용하여 Configuration Manager SMS 공급자에 연결하는 방법
작업 순서 개요