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

Un'azione della sequenza di attività di distribuzione del sistema operativo viene aggiunta a una sequenza di attività, in Configuration Manager, creando un'istanza di una classe derivata SMS_TaskSequence_Action e quindi aggiungendola ai passaggi della sequenza di attività.

Nota

Configuration Manager dispone di una serie di azioni predefinite che è possibile usare. Ad esempio, la classe di azione della riga di comando è SMS_TaskSequence_RunCommandLineAction. Queste classi derivano dalla classe SMS_TaskSequence_Action .

SMS_TaskSequenceAction deriva dalla classe SMS_TaskSequence_Step , ovvero la classe di base per azioni e gruppi. La sequenza di attività archivia i passaggi in una matrice di SMS_TaskSequence_Step, consentendo così l'archiviazione di azioni e gruppi.

Per aggiungere un'azione della sequenza di attività

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

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

  3. Creare un'istanza della classe derivata SMS_TaskSequenceAction , ad esempio SMS_TaskSequence_RunCommandLineAction, per l'azione desiderata.

  4. Popolare l'azione in base alle esigenze.

  5. Aggiungere l'azione ai passaggi delle sequenze di attività. Viene archiviata la proprietà Steps della classe SMS_TaskSequence).

Esempio

Il metodo di esempio seguente crea un'azione della riga di comando e la aggiunge alla sequenza di attività fornita.

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

Sub AddTaskSequenceActionCommandLine(connection, taskSequence, name, description)     

    Dim steps  
    Dim action    

    Set action = connection.Get("SMS_TaskSequence_RunCommandLineAction").SpawnInstance_  

    action.CommandLine = "cmd /c Echo Hello"  
    action.Name=name  
    action.Description=description  
    action.Enabled=True  
    action.ContinueOnError=False  

      If IsNull(taskSequence.Steps) Then  
        steps = Array(action)  
        taskSequence.Steps=steps  
    Else  
        steps= Array(taskSequence.Steps)  
        ReDim steps (UBound (taskSequence.Steps)+1)   
        taskSequence.Steps(UBound(steps))=action  
    End if    

End Sub  

public IResultObject AddTaskSequenceActionCommandLine(  
    WqlConnectionManager connection,   
    IResultObject taskSequence,  
    string name,   
    string description)  
{  
    try  
    {  
        // Create the new step.  
        IResultObject ro;  

        ro = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RunCommandLineAction");  
        ro["CommandLine"].StringValue = @"cmd /c Echo Hello";  

        ro["Name"].StringValue = name;  
        ro["Description"].StringValue = description;  
        ro["Enabled"].BooleanValue = true;  
        ro["ContinueOnError"].BooleanValue = false;  

        // Add the step to the task sequence.  
        List<IResultObject> array = taskSequence.GetArrayItems("Steps");  

        array.Add(ro);  

        taskSequence.SetArrayItems("Steps", array);  

        return ro;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to add 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à valida.
Name -Gestito: String
-Vbscript: String
Nome della nuova azione.
Description -Gestito: String
-Vbscript: String
Descrizione dell'azione.

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 una condizione a un passaggio 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
Come creare un gruppo di attività di distribuzione del sistema operativo
Come eliminare un'azione della sequenza di attività di distribuzione del sistema operativo
Panoramica sulla sequenza delle attività