Come eliminare un'azione della sequenza di attività di distribuzione del sistema operativo

È possibile eliminare un'azione della sequenza di attività di distribuzione del sistema operativo, in Configuration Manager, rimuovendo l'azione dai passaggi della sequenza di attività.

Per eliminare un'azione della sequenza di attività

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

  2. Ottenere un oggetto sequenza di attività (SMS_TaskSequence). Per altre informazioni, vedere Come creare una sequenza di attività di distribuzione del sistema operativo.

  3. Rimuovere l'azione dalla proprietà della SMS_TaskSequence.Steps matrice.

Esempio

Il metodo di esempio seguente elimina un'azione dalla sequenza di attività. L'azione viene identificata come azione controllando la proprietà Strumentazione gestione Windows (WMI) __SUPERCLASS per assicurarsi che derivi da SMS_TaskSequenceAction.

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice 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;  
    }  
}  

Il metodo di esempio include i parametri seguenti:

Parametro Tipo Descrizione
Connection -Gestito:WqlConnectionManager
- VBScript: SWbemServices
Connessione valida al provider SMS.
taskSequence -Gestito: IResultObject
- VBScript: SWbemObject
Sequenza di attività contenente l'azione da eliminare.
actionName -Gestito: String
-Vbscript: String
Nome dell'azione da eliminare. Questa operazione può essere ottenuta dalla SMS_TaskSequenceAction.Name proprietà .

Compilazione del codice

Questo esempio C# richiede:

Namespaces

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 operativo
Come connettersi a un provider SMS in Configuration Manager tramite codice gestito
Come connettersi a un provider SMS in Configuration Manager tramite WMI
Panoramica sulla sequenza delle attività