De volgorde van een besturingssysteemimplementatiereeks wijzigen

In Configuration Manager kunt u de volgorde van de stappen (een actie of een groep) in een takenreeks of groep wijzigen door de stappenvolgorde te wijzigen in de eigenschap StappenSMS_TaskSequence_Step matrix.

De volgorde van een taakreeks wijzigen

  1. Stel een verbinding in met de sms-provider. Zie Basisprincipes van sms-provider voor meer informatie.

  2. Zorg dat u een geldige takenreeks (SMS_TaskSequence) of taakreeksgroep (SMS_TaskSequence_Group) verkrijgt. Zie Een takenreeks lezen vanuit een takenreekspakket voor meer informatie.

  3. Verplaats binnen de Steps matrixeigenschap de SMS_TaskSequence_Step naar de nieuwe locatie.

  4. De taakreeks of groep bijwerken.

Voorbeeld

In het volgende voorbeeld ziet u hoe u binnen een taakreeks of groep een stap omhoog of omlaag gaat.

Zie Codefragmenten van Configuration Manager aanroepen voor meer informatie over het aanroepen van de voorbeeldcode.

Sub MoveTaskSequenceStepDown(taskSequence, stepName)
   Dim index
   Dim osdStep
   Dim temp

    index=0

    ' If found, move the step down.
    for each osdStep in taskSequence.Steps
        If osdStep.Name=stepName Then
            If index < Ubound (TaskSequence.Steps) Then
                Set temp=osdStep
                taskSequence.Steps(index)=taskSequence.Steps(index+1)
                taskSequence.Steps(index+1)=temp
                Exit For
           End If
        End If

        index=index+1
    next
End Sub

Sub MoveTaskSequenceStepUp(taskSequence, stepName)
    Dim index
    Dim osdStep
    Dim temp

    index=0

    ' If found, move the step up.
    for Each osdStep In taskSequence.Steps
        If osdStep.Name=stepName Then
            If index >1 Then
                Set temp=osdStep
                taskSequence.Steps(index)=taskSequence.Steps(index-1)
                taskSequence.Steps(index-1)=temp
                Exit For
           End If
        End If

        index=index+1

    next
End Sub
public void MoveTaskSequenceStepDown(
    IResultObject taskSequence,
    string taskSequenceStepName)
{
    try
    {
        // Get the task sequence steps.
        List<IResultObject> steps = taskSequence.GetArrayItems("Steps"); // Array of SMS_TaskSequence_Steps.

        int index = 0;

        // Scan through the steps to find the step to move down.
        foreach (IResultObject ro in steps)
        {
            if (ro["Name"].StringValue == taskSequenceStepName)
            {
                // Move the step.
                if (index < steps.Count - 1) // Not at end, so we can flip.
                {
                    steps.Insert(index + 2, steps[index]);
                    steps.Remove(steps[index]);
                    taskSequence.SetArrayItems("Steps", steps);
                    break;
                }
            }

            index++;
        }
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed To enumerate task sequence items: " + e.Message);
        throw;
    }
}

public void MoveTaskSequenceStepUp(
    IResultObject taskSequence,
    string taskSequenceStepName)
{
    try
    {
        // Get the task sequence steps.
        List<IResultObject> steps = taskSequence.GetArrayItems("Steps"); // Array of SMS_TaskSequence_Steps.

        int index = 0;

        foreach (IResultObject ro in steps)
        {
            if (ro["Name"].StringValue == taskSequenceStepName)
            {
                if (index > 0) // Not the first step, so you can move it up.
                {
                    steps.Insert(index + 1, steps[index - 1]);
                    steps.Remove(steps[index - 1]);
                    taskSequence.SetArrayItems("Steps", steps);
                    break;
                }
            }
            index++;
        }
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed To enumerate task sequence items: " + e.Message);
        throw;
    }
}

De voorbeeldmethode heeft de volgende parameters:

Parameter Type Beschrijving
taskSequence - Beheerd: IResultObject
- VBScript: SWbemObject
Een geldige taakreeks of taakvolggroep
taskSequenceStepName

stepName
- Beheerd: String
- VBScript: String
De naam van de taakvolgorde die moet worden verplaatst.

De code compileren

Dit C#-voorbeeld vereist:

Naamruimten

Systeem

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

bijeenkomst

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuust programmeren

Zie Info over fouten in Configuration Manager voor meer informatie over foutafhandeling.

.NET Framework-beveiliging

Zie Rolgebaseerd beheer van Configuration Manager voor meer informatie over het beveiligen van Configuration Manager-toepassingen.

Zie ook

Overzicht van objectenEen taakvolgorde-actie voor de implementatie van een besturingssysteemtoevoegen Verbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde codeVerbinding maken met een SMS-provider in Configuration Manager met behulp van WMIOverzicht van de taakreeks