Sdílet prostřednictvím


Postup odstranění akce pořadí úkolů nasazení operačního systému

Akci pořadí úkolů nasazení operačního systému v Configuration Manager odstraníte odebráním akce z kroků pořadí úkolů.

Odstranění akce pořadí úkolů

  1. Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Základy poskytovatele serveru SMS.

  2. Získejte objekt pořadí úkolů (SMS_TaskSequence). Další informace najdete v tématu Postup vytvoření pořadí úloh nasazení operačního systému.

  3. Odeberte akci z SMS_TaskSequence.Steps vlastnosti pole.

Příklad

Následující ukázková metoda odstraní akci z pořadí úkolů. Akce se identifikuje jako akce tím, že zkontroluje __SUPERCLASS vlastnosti WMI (Windows Management Instrumentation), aby se zajistilo, že je odvozená od SMS_TaskSequenceAction.

Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.

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;
    }
}

Ukázková metoda má následující parametry:

Parametr Typ Popis
Connection -Řízen:WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.
taskSequence -Řízen: IResultObject
- VBScript: SWbemObject
Pořadí úkolů obsahující akci, která má být odstraněna.
actionName -Řízen: String
- VBScript: String
Název akce, která se má odstranit. To lze získat z SMS_TaskSequenceAction.Name vlastnosti.

Kompilace kódu

Tento příklad jazyka C# vyžaduje:

Obory názvů

Systém

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Shromáždění

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robustní programování

Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.

Zabezpečení rozhraní .NET Framework

Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.

Viz taky

Přehled objektů: Akce pořadí úkolů Přidání nasazení operačního systémuPostup připojení k poskytovateli serveru SMS v Configuration Manager pomocí spravovaného kóduPostup připojení k poskytovateli serveru SMS v Configuration Manager pomocí rozhraní WMIPřehled pořadí úkolů