Condividi tramite


Come riordinare una sequenza di attività di distribuzione del sistema operativo

In Configuration Manager è possibile riordinare i passaggi (un'azione o un gruppo) in una sequenza di attività o in un gruppo riorganizzando la sequenza di passaggi nella proprietà StepsSMS_TaskSequence_Step matrice.

Per riordinare una sequenza di attività

  1. Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.

  2. Ottenere una sequenza di attività valida (SMS_TaskSequence) o un gruppo di sequenze di attività (SMS_TaskSequence_Group). Per altre informazioni, vedere Come leggere una sequenza di attività da un pacchetto della sequenza di attività.

  3. All'interno della Steps proprietà della matrice spostare il SMS_TaskSequence_Step nella nuova posizione.

  4. Aggiornare la sequenza o il gruppo di attività.

Esempio

L'esempio seguente illustra come spostare un passaggio verso l'alto o verso il basso all'interno di una sequenza di attività o di un gruppo.

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice Configuration Manager.

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

Il metodo di esempio include i parametri seguenti:

Parametro Tipo Descrizione
taskSequence -Gestito: IResultObject
- VBScript: SWbemObject
Una sequenza di attività o un gruppo di sequenze di attività valido
taskSequenceStepName

stepName
-Gestito: String
- VBScript: String
Nome del passaggio della sequenza di attività da spostare.

Compilazione del codice

Questo esempio C# richiede:

Spazi dei nomi

Sistema

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programmazione efficiente

Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.

Sicurezza di .NET Framework

Per altre informazioni sulla protezione delle applicazioni Configuration Manager, vedere Configuration Manager'amministrazione basata sui ruoli.

Vedere anche

Panoramica degli oggettiCome aggiungere un'azione della sequenza di attività di distribuzione del sistema operativoCome connettersi a un provider SMS in Configuration Manager tramite codice gestitoCome connettersi a un provider SMS in Configuration Manager tramitela panoramica della sequenza di attività WMI